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;
}
}