これはおそらく愚かな質問ですが、私は助けが必要です。(私は3時間自分で解決しようとしましたので、ブロックしないでください) 私はJavaファイルをコンパイルしようとしています別のディレクトリ。javaと別のパスでjavaをコンパイル
私はいくつかの.javaファイルを含むフォルダを取得しています。それらをコンパイルする必要があります。 with:
public boolean complie() throws Exception{
Process pro = Runtime.getRuntime().exec("javac -cp "+location+"/*.java");
String line = null;
BufferedReader in = new BufferedReader(
new InputStreamReader(pro.getErrorStream()));
while ((line = in.readLine()) != null) {
System.out.println(name + " " + line);
}
}
エラーが発生します。 エラーは、フォルダ内の他のクラスの使用を指しています。 (error: cannot find symbol
)
"javac *.java
"のフォルダに移動してCMDでコンパイルしようとすると、エラーはありません。
私を助けてください!
更新:
File pathToExecutable = new File(location);
ProcessBuilder builder = new ProcessBuilder(pathToExecutable.getAbsolutePath(),"javac *.java");
builder.directory(new File(location).getAbsoluteFile()); // this is where you set the root folder for the executable to run with
builder.redirectErrorStream(true);
Process process = builder.start();
Scanner s = new Scanner(process.getInputStream());
StringBuilder text = new StringBuilder();
while (s.hasNextLine()) {
text.append(s.nextLine());
text.append("\n");
}
s.close();
をしかしCreateProcess error=5, Access is denied
エラー(私は管理者としての私のIDEを実行している)
問題は作業ディレクトリ。同じCMDウィンドウでJavaプログラムを実行していますか? –
場所はどこに定義されていますか? –
場所があるかもしれませんが、確かに場所を印刷してください。そして、相対位置であれば、 'exec(" pwd ")' –