簡體   English   中英

如何在沒有JVM的情況下運行java程序?

[英]How to run java program without JVM?

我有一個簡單的 java 程序,它只會打印 Hello World。是否可以在不使用安裝在機器上的 JVM 的情況下進行打印?但是編譯器在那里。

您可以使用以下內容將 Java 字節代碼編譯為機器代碼: http : //en.wikipedia.org/wiki/GNU_Compiler_for_Java

或者您可以使用許多 Java 到 C/C++ 轉換器中的任何一個來制作 C/C++ 版本,然后編譯它。 (在 Google 上搜索“Java C 轉換器”)

警告:我從未嘗試過任何這些,包括鏈接的 GNU 編譯器,所以我無法證明它們的有用性或質量。

@SplinterReality 已經向您指出了一些編譯器(谷歌搜索“java 字節碼到本機代碼編譯器”將向您展示更多選項)。

我將擴展一下,看到有些人有點困惑:

JVM 是一個采用 java字節碼的程序,您可以通過在 java源代碼上運行 javac 來獲得它(或者您以其他方式生成它)。 字節碼只是 JVM 理解的一組指令,它可以為您提供一組與平台無關的一致操作碼。 然后將這些操作碼映射到本機指令是 JVM 的工作,這就是 JVM 依賴於平台的原因。 這就是為什么當您將 Java 源代碼編譯為 Java 字節碼時,您可以在每個平台上運行它。

這就是為什么,無論您有 Java 源代碼還是字節碼,您都可以將其直接編譯為本機代碼(取決於平台,實際上有時這正是 JVM,更准確地說是 JIT 所做的 - 它將東西編譯為本機代碼)當它認為需要時編寫代碼)。 JVM 還不僅僅是字節碼解釋——例如,您需要處理垃圾收集。

所以答案是:是的,你真的想做嗎? 除非您想在某些嵌入式系統上運行它,否則我真的看不出有任何理由這樣做。

是的,雖然有限制,但可以在沒有 JVM 的情況下運行 Java 程序。 除了http://en.wikipedia.org/wiki/GNU_Compiler_for_Java之外,還有 GraalVM 本機圖像生成器,可以使用: https ://www.graalvm.org。

如果該程序是單文件源代碼(未以字節碼編譯),那么您可以 ;)這里這里 這里也很好;)

把它放在那里,然后按compile and run

但它只適用於簡單的東西,而且你必須有源代碼。

如果有一個網站允許從用戶 PC 上傳課程,我不會感到驚訝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM