package istlab.KisoJikken; import java.io.File; import java.io.IOException; public class JExecutor implements Runnable { Thread thread; Process process; String absolutePath; String pkgname; String javafname; public JExecutor(String p) { absolutePath = p; thread = new Thread(this); String[] ary; if (File.separator.equals("\\")){ ary = absolutePath.split("\\\\"); } else { ary = absolutePath.split(File.separator); } for (int i = 0; i < ary.length; i++) { if (ary[i].equals("src")) { pkgname = ary[i + 1]; javafname = ary[i + 2].substring(0, ary[i + 2].length() - 5); break; } } thread.start(); } @Override public void run() { ProcessBuilder processBuilder = new ProcessBuilder("java", pkgname + "." + javafname); processBuilder.redirectErrorStream(true); JTAConsole con = new JTAConsole("(Exec) java " + pkgname + "." + javafname); con.Systemoutprintln("== 実行開始 =="); con.Systemoutprintln("> cd ~" + App.nwpsrc); con.Systemoutprintln("> java " + pkgname + "." + javafname); // ProcessBuilder processBuilder = new ProcessBuilder("pwd"); processBuilder.directory(new File(App.userhome + App.nwpsrc)); // processBuilder.inheritIO(); try { process = processBuilder.start(); con.startBR(process); // process.waitFor(); // BufferedReader reader = new BufferedReader(new // InputStreamReader(process.getInputStream())); // String line; // while ((line = reader.readLine()) != null) { // jta.append(line); // } } catch (IOException e1) { e1.printStackTrace(); } con.Systemoutprintln("== 実行終了 =="); thread = null; } }