I would like compile a Java 10 class file with jaotc
. While I am able to build a shared lib of an Java 10 module I am not able figure out how to compile a single class. The FQCN of my class is net.sweblog.jm18.aot.hw.HelloWorld
and its full path is target/classes/net/sweblog/jm18/aot/hw/HelloWorld.class
.
So tried to invoke jaotc
as follows:
$ 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)
Does anyone know how to invoke jaotc
correctly to compile my class file?
The NullPointerException
could be thrown when there are no classes found by the tool to compile in the specified searchPath
or the files
(if specified in the --jar
arg).
If you look at the code at Line#135 does a
printer.printInfo(classesToCompile.size() + " classes found");
where NPE could be thrown if classesToCompile
is null which is the case only when the lookup for classes fails in the specified path
try {
foundClasses = lookup.search(this.main.options.files, this.main.options.searchPath);
} catch (InternalError var7) {
this.main.printer.reportError(var7);
return null;
}
Hence, I would recommend verifying the search path that you've specified.
I also doubt specifying the class name net.sweblog.jm18.aot.hw.HelloWorld
to a compiler, if I am not wrong to draw an analogy with javac
here, it would have required a complete path for either the compiled or source class.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With