我有一个研究项目(在 Java 8 中实现)将在 Eclipse 中使用几个类、几个主要函数和超过 10000 行代码。当输入不小时,程序会耗尽内存。我想看看如果编译为本机应用程序,它是否会使用更少的堆栈内存。我没有找到在 Eclipse 中执行此操作的方法。我做了$GRAALVM_HOME/bin/javac /home/appu/Downloads/2019/June/20/HelloWorld.java它的工作。我有一个工作二进制文件。我试过/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi/decimate/Decimate.class了Main entry point class '/home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi/decimate/Decimate.class' not found.我试过/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/eclipse-nimi/NimishaGraalEE19/bin/*了Main entry point class '/home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi' not found.经典public class HelloWorld{ public static void main(String[] args) { System.out.println("Hello, World!"); }}被编译成“HelloWorld.class”它给出了一个可执行的可执行文件“helloworld”(应用程序/x-可执行文件)。我可以从 Eclipse 获得相同的吗?对于多类文件,我可以从命令行获得相同的内容吗?当我将上面的代码更改为public class HelloWorld{ public static void hello() { System.out.println("Hello, World!"); }}并添加另一个类public class Main{ public static void main(String[] args) { HelloWorld.hello(); }}我想要的是一个可执行文件(在我的例子中是一个 Gnu/Linux 可执行文件),它可以用作本机可执行文件。我更喜欢 Eclipse 的解决方案,但欢迎使用命令行、Netbeans、VS 代码……或任何其他技术。
1 回答

慕尼黑5688855
TA贡献1848条经验 获得超2个赞
文档中的两个选项(https://www.graalvm.org/docs/reference-manual/aot-compilation/):
1) 构建一个项目的 jar 并从中构建一个原生图像
native-image [options] -jar jarfile
为 jar 文件构建图像。
2)正确设置原生镜像classpath,给原生镜像你想要的main
您可以为本机图像构建提供额外的选项:
-cp
并--class-path
帮助通过目录、JAR 存档和 ZIP 存档的单独列表搜索类文件;
native-image [options] class
为当前工作目录中的类构建可执行文件。调用它会执行该类的本机编译代码。
添加回答
举报
0/150
提交
取消