所以我遇到了javax.tools.JavaCompiler的api和cmd行編譯器(這些都是同樣的事情!)之間的一個惱人的小問題。我只想使用一個參數到javac,如:* -d C:\ compiled \ C:\ programs \ HelloWorld.java *。這在cmd提示符下工作良好,但是我的代碼失敗,說該文件不存在。javax.tools.JavaCompiler「arguments」arg
public class Test {
private static String programsDir = "C:\\programs\\";
private static String compiledDir = "C:\\compiled\\";
private static String fileName = "HelloWorld.java";
public static void main(String[] args){
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
String arguments = "-d " + compiledDir + " " + programsDir + fileName ;
compiler.run(System.in, System.out, System.err, arguments);
}
輸出是:
javac: file not found: -d C:\compiled\ C:\programs\HelloWorld.java
Usage: javac <options> <source files>
use -help for a list of possible options
但我可以剪切和粘貼 「-d C:\編譯\ C:\程序\ HelloWorld.java」 到javac中。即,javac -d C:\ compiled \ C:\ Program Files \ HelloWorld.java的作品。
'C:programs' - >''\''失蹤出於某種原因(你的代碼顯示了它的存在)? – nhahtdh 2013-02-13 07:09:40
@nhahtdh雖然它是在代碼中 - 不知道是哪個使用;-) – assylias 2013-02-13 07:11:14
對不起,你們是一個錯字。修復。 – Matt 2013-02-13 07:13:40