package istlab.KisoJikken;
import java.io.File;
import java.io.IOException;
public class JCompiler implements Runnable {
Thread thread;
Process process;
String absolutePath;
String pkgname;
String javafname;
public JCompiler(String p) {
absolutePath = p;
thread = new Thread(this);
String[] ary;
if (File.separator.equals("\\")) {
ary = absolutePath.split("\\\\");
// for (int i = 0; i < ary.length; i++)
// System.out.println(ary[i]);
} 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];
break;
}
}
thread.start();
}
@Override
public void run() {
// System.out.println("== コンパイル開始 ==");
ProcessBuilder processBuilder = new ProcessBuilder("bash", "-c",
"javac -encoding UTF-8 " + pkgname + "/*.java");
if (App.isWindows) {
processBuilder = new ProcessBuilder("javac","-encoding", "UTF-8" , pkgname + "/*.java");
}
processBuilder.redirectErrorStream(true);
JTAConsole con = new JTAConsole("(Compile) javac " + pkgname + "/*.java");
con.setMainSrcByFileName(absolutePath);
con.Systemoutprintln("=== コンパイル開始 ===");
con.Systemoutprintln(CommandRunner.prompt + "cd ~" + App.nwpsrc + " (注:~ はチルダ記号〜 で,ホームディレクトリを表します)");
con.Systemoutprintln(CommandRunner.prompt + "javac -encoding UTF-8 " + pkgname + "/*.java");
// ProcessBuilder processBuilder = new ProcessBuilder("pwd");
processBuilder.directory(new File(App.userhome + App.nwpsrc));
// processBuilder.inheritIO();
try {
process = processBuilder.start();
Launcher.allProcs.add(process);
con.startBR(process);
// 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();
}
con.Systemoutprintln("=== コンパイル終了 === (ALT+Wで閉じる)");
thread = null;
}
}