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

import java.io.File;
import java.io.IOException;

import javax.swing.JButton;

public class ScriptRunner implements Runnable {
    String scriptfile;

    Thread thread;
    Process process;
    JButton runB;

    public ScriptRunner(String shfile, JButton rB) {
        scriptfile = shfile;
        runB = rB;
    }

    public void startstop() {
        if (thread == null) {
            thread = new Thread(this);
            thread.start();
            runB.setText("Stop");
        } else {
            process.destroy();
            thread = null;
            runB.setText("Run");
        }
    }

    @Override
    public void run() {
        // Run script
        System.out.println(scriptfile);
        ProcessBuilder processBuilder = new ProcessBuilder("bash", scriptfile);
        // ProcessBuilder processBuilder = new ProcessBuilder("pwd");
        processBuilder.directory(new File(App.userhome + App.nwpsrc));
        processBuilder.inheritIO();
        try {
            process = processBuilder.start();
            // BufferedReader reader = new BufferedReader(new
            // InputStreamReader(process.getInputStream()));
            // String line;
            // while ((line = reader.readLine()) != null) {
            // jta.append(line);
            // }
            process.waitFor();
        } catch (IOException | InterruptedException e1) {
            e1.printStackTrace();
        }
        System.out.println("Exit");
        thread = null;
        runB.setText("Run");
    }

}