在阅读下面的内容并离开之前,如果您知道使用代码用其他方法编译包含非java文件的java目录,请考虑帮助我。
我只是尝试了一些代码(见下文)来编译一个目录,它工作得很好!我想做的是包括一些文本文件和一个jar文件(作为一个依赖项),但是我不知道怎么做。如果有人能给我解释怎么做并给我看一些示例代码,我会非常感激的。
代码:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList(file1.getAbsolutePath(), file2.getAbsolutePath(), file3.getAbsolutePath()));
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits);
boolean success = task.call();
fileManager.close();
System.out.println(success);
更换 Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList(file1.getAbsolutePath(), file2.getAbsolutePath(), file3.getAbsolutePath()));
与 Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList(file1.getAbsolutePath(), file2.getAbsolutePath(), file3.getAbsolutePath(), text.getAbsolutePath(), dependency.getAbsolutePath()));
只会使它根本无法工作,因为它们不是java文件。
或者也许有更好的方法?
暂无答案!
目前还没有任何答案,快来回答吧!