我不知道如何設置compilationTask
的源文件。如何通過CompilationTask設置編譯源
我嘗試這樣做:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
List<String> optionList = new ArrayList<String>(Arrays.asList("-d","build/classes"));
List<String> classes = new ArrayList<String>();
classes.add("src/Hello.java");
CompilationTask task = compiler.getTask(null, null, null, optionList, classes, null);
task.call();
,但我得到了以下錯誤:
當然Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: src/Hello.java
,如果我把班空,而不是我得到「沒有源文件」,因爲沒有源文件被給了。在此之前我嘗試過使用JavaCompiler
的運行函數,但我無法在字符串參數中指定選項(或者我不知道如何)。
這裏是解決方案:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
List<String> optionList = new ArrayList<String>(Arrays.asList("-d","build/classes"));
Iterable<? extends JavaFileObject> classes = fileManager.getJavaFileObjectsFromFiles(Arrays.asList(new File("src/Hello.java")));
CompilationTask task = compiler.getTask(null, null, null, optionList,null, classes);
task.call();
你曾經解決過這個問題嗎?如果是這樣,你介意發佈你的解決方案嗎? – 2011-06-01 12:39:35
帖子用解決方案更新 – Muaz 2011-06-02 21:49:42