我想用net.sweblog.jm18.aot.hw.HelloWorld
编译一个Java 10类文件。虽然我能够构建Java 10模块的共享库,但我无法弄清楚如何编译单个类。我班级的FQCN为target/classes/net/sweblog/jm18/aot/hw/HelloWorld.class
,其完整路径为jaotc
。
因此尝试按如下方式调用$ jaotc --output output/helloworld.so \
--search-path helloworld/target/classes/ \
--class-name net.sweblog.jm18.aot.hw.HelloWorld
Error: Failed to find class file: net.sweblog.jm18.aot.hw.HelloWorld
java.lang.NullPointerException
at jdk.aot/jdk.tools.jaotc.Main.run(Main.java:135)
at jdk.aot/jdk.tools.jaotc.Main.run(Main.java:101)
at jdk.aot/jdk.tools.jaotc.Main.main(Main.java:80)
:
jaotc
有没有人知道如何正确调用block1 = pygame.Surface(?,?)
来编译我的类文件?
答案 0 :(得分:1)
当工具找不到要在指定的NullPointerException
或searchPath
中编译的类时(如果在files
arg中指定),可能会抛出--jar
。
如果您查看Line#135处的代码,请执行
printer.printInfo(classesToCompile.size() + " classes found");
如果classesToCompile
为null,则可以抛出NPE,只有在指定路径中查找类失败时才会出现这种情况
try {
foundClasses = lookup.search(this.main.options.files, this.main.options.searchPath);
} catch (InternalError var7) {
this.main.printer.reportError(var7);
return null;
}
因此,我建议您验证您指定的搜索路径。
我也怀疑为编译器指定了类名net.sweblog.jm18.aot.hw.HelloWorld
,如果我在这里用javac
进行类比并没有错,那么它需要一个完整的路径来编译或源类。