我有一個研究項目(在 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
提交
取消