Newer
Older
KisoJikkenNWP / src / main / java / istlab / KisoJikken / App.java
package istlab.KisoJikken;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

/**
 * Hello world!
 *
 */
public class App {
    public static String userhome;
    public static String nwpsrc = "/NWP/src";
    public static String gitrepos = "https://git.istlab.info/git/miura250/NWP.git";

    public static void main(String[] args) {
        // ファイルがあるかチェック
        userhome = System.getProperty("user.home");
        if (Files.notExists(Paths.get(userhome + nwpsrc))) {
            int res = JOptionPane.showConfirmDialog(null, "NWP実験用のファイルが " + userhome + nwpsrc + " にありません。ダウンロードしますか?");
            if (res == JOptionPane.YES_OPTION) {
                System.out.println("cd ; git clone "+gitrepos+" を実行。");
                ProcessBuilder processBuilder = new ProcessBuilder("git", "clone", gitrepos);
                processBuilder.directory(new File(userhome));
                processBuilder.inheritIO();
                try {
                    Process process;
                    process = processBuilder.start();
                    process.waitFor();
                } catch (IOException | InterruptedException e1) {
                    e1.printStackTrace();
                }
            } else {
                System.out.println("cd ; git clone "+gitrepos+" を実行してください。");
                System.exit(0);
            }
        }

        SwingUtilities.invokeLater(() -> {
            try {
                String laf = UIManager.getSystemLookAndFeelClassName();
                UIManager.setLookAndFeel(laf);
            } catch (Exception e) {
                /* Never happens */ }
            new Launcher(args).setVisible(true);
        });

    }
}