繁体   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