gpt4 book ai didi

JavaCompiler、StandardJavaFileManager 抛出 NPE

转载 作者:行者123 更新时间:2023-11-30 07:27:31 27 4
gpt4 key购买 nike

我想从另一个类编译一个类,但我使用的每个方法都会抛出 NullPointerException。

代码如下:

File fRun = new File(fileToRun);    
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
// NPE IN NEXT LINE
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
Iterable<? extends JavaFileObject> compUnits = fileManager.getJavaFileObjects(fRun);
compiler.getTask(null, fileManager, null, null, null, compUnits).call();
fileManager.close();

public static void main(String[] args) {
String fileToCompile = "test" + java.io.File.separator + "MyClass.java";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
// NPE IN NEXT LINE
int compilationResult = compiler.run(null, null, null, fileToCompile);
if (compilationResult == 0) {
System.out.println("Compilation is successful");
} else {
System.out.println("Compilation Failed");
}
}

来自 http://www.javabeat.net/articles/73-the-java-60-compiler-api-1.html

我从 Eclipse 启动程序。

哪里错了?

最佳答案

很可能 getSystemJavaCompiler() 返回 null,因为在您运行它的平台上没有提供 Java 编译器。您是使用 JDK 还是 JRE 运行程序?

关于JavaCompiler、StandardJavaFileManager 抛出 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9619448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com