如何在没有JVM的情况下运行java程序?

时间:2014-09-02 07:18:57

标签: java jvm

我有简单的java程序,它只会打印Hello World。可以在不使用机器中安装JVM的情况下进行打印吗?但编译器就在那里。

4 个答案:

答案 0 :(得分:9)

您可以使用以下内容将Java字节代码编译为机器代码: http://en.wikipedia.org/wiki/GNU_Compiler_for_Java

或者您可以使用任何许多Java到C / C ++转换器来制作C / C ++版本,并进行编译。 (在Google上搜索“Java C Converter”)

警告:我从未尝试过任何这些内容,包括链接的GNU编译器,因此我无法证明其有用性或质量。

答案 1 :(得分:3)

@SplinterReality已经向您指出了一些编译器(谷歌搜索" java字节码到本机代码编译器"将向您显示更多选项)。

我会扩大看到一些人有点困惑:

JVM是一个程序,它接受java 字节码,你可以通过在java 源代码上运行javac来获得(或者你以其他方式生成它)。字节码只是JVM理解的一组指令,它为您提供了一组与平台无关的操作码。然后,JVM的工作就是将这些操作码映射到本机指令,这就是JVM与平台相关的原因。这就是为什么当你将java源代码编译为java字节码时,你可以在每个平台上运行它。

这就是为什么,无论你有java源代码还是字节码,你都可以把它直接编译成原生代码(依赖于平台,实际上有时候这就是JVM的本质,并且更多精确的JIT,确实 - 当它看到需要时,它将东西编译成本机代码)。还有更多的JVM,而不仅仅是字节码解释 - 例如,你需要处理垃圾收集。

所以答案是:是的,但是你真的想这么做吗?除非你想在某些嵌入式系统上运行它,否则我真的没有理由这么做。

答案 2 :(得分:0)

是的,尽管有限制,也可以在没有JVM的情况下运行Java程序。除了http://en.wikipedia.org/wiki/GNU_Compiler_for_Java之外,还有GraalVM本机图像生成器,可以使用:https://www.graalvm.org

答案 3 :(得分:-1)

如果该程序是一个文件源代码(不是用字节码编译)那么你可以;) HerehereHere也没问题;)

只需将其放在那里,然后按compile and run

但它只适用于简单的东西,你必须有源代码。

如果有一个允许从用户PC上传课程的网站,我不会感到惊讶