使用Java 10的jaotc编译单个类

时间:2018-05-08 20:54:42

标签: java aop java-10 jaotc

我想用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(?,?) 来编译我的类文件?

1 个答案:

答案 0 :(得分:1)

当工具找不到要在指定的NullPointerExceptionsearchPath中编译的类时(如果在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进行类比并没有错,那么它需要一个完整的路径来编译或源类。