如何在 Eclipse 中使用 GraalVM (SubstrateVM) 将 Java 编译成

我有一个研究项目(在 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 代码……或任何其他技术。


SMILET
浏览 201回答 1
1回答

慕尼黑5688855

文档中的两个选项(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为当前工作目录中的类构建可执行文件。调用它会执行该类的本机编译代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java