gpt4 book ai didi

java - 使用 Java 10 的 jaotc 编译单个类

转载 作者:搜寻专家 更新时间:2023-10-31 20:31:55 26 4
gpt4 key购买 nike

我想用 jaotc 编译一个 Java 10 类文件。虽然我能够构建 Java 10 模块的共享库,但我无法弄清楚如何编译单个类。我类的 FQCN 是 net.sweblog.jm18.aot.hw.HelloWorld 其完整路径是 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来编译我的类文件?

最佳答案

当工具在指定的 searchPathfiles(如果指定)中找不到要编译的类时,可能会抛出 NullPointerException--jar 参数中)。

如果您查看 Line#135 处的代码做一个

printer.printInfo(classesToCompile.size() + " classes found");

如果 classesToCompile 为空,则可能抛出 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 进行类比没有错的话,它将需要已编译类或源类的完整路径。

关于java - 使用 Java 10 的 jaotc 编译单个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50242121/

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