我有一个Java程序,它被转换成可执行的jar。在没有Java的Linux机器上可以运行jar吗?即一台没有Java的机器。在Linux环境下运行没有JVM的Java
回答
试试这个编译器。 https://en.wikipedia.org/wiki/GNU_Compiler_for_Java
的GNU Java编译器(GCJ)是Java编程语言的免费编译器和GNU编译器集
在这之前,请参阅[是GNU的Java编译器GCJ死了吗?](http://stackoverflow.com/questions/4035538/is-gnus-java-compiler-gcj-dead/4040404#4040404)另外[GCJ新闻页面](http://gcc.gnu.org/java/),它自2009年以来一直未更新。 – EJP
一部分。如果你的应用程序没有使用最新的Java语言标准,你可以使用gcj创建一个二进制文件。 但请认为gcj是一个相当老的产品,并没有多年更新。较新的Java版本的支持缺乏,在project page状态:
...已经被合并到GNU Classpath并支持大多数1.4 库加上一些附加1.5。
由gcj创建的代码可能比在Hotspot Jvm下运行的代码慢得多,并在静态编译时创建相当大的二进制文件。
另一种选择是将Jre和您的jar包捆绑到一个可执行文件中。这个任务有几个程序,launch4j(http://launch4j.sourceforge.net)就是其中之一。
您也可以自己提供Java,因为它不需要安装,可以放在与jar相同的目录中。如果您使用Oracles JRE,请检查Eula是否允许以这种方式捆绑它。如果没有,你可以使用OpenJdk。
在Java 8中,您可以为Windows/Linux/Mac创建所谓的“独立包”,这实际上是与JRE捆绑在一起的Java应用程序。
未来阅读:
https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html
https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/packager.html
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html
而且它可能是值得一提的提前(AOT)的Java编译器,如怡东喷气:http://www.excelsiorjet.com/
我认为自包含的软件包是最好的选择:标准,没有成本,并且完成这项工作。另外,您不需要源代码,它可以在JAR上工作 – Marged
'javapackager'在Java 7中可用,但它被称为'javafxpackager'。 –
下面是一个'javapackager'的例子:http://stackoverflow.com/a/34253042/597657 –
- 1. 在Linux环境下运行PHP的Windows网络驱动器
- 2. 在linux下运行java jar
- 3. 在java 7环境下运行java 1.5编译的程序
- 4. 如何在Linux环境下运行.net应用程序?
- 5. Javascript'onclick'在windows环境下失败,但在linux环境下工作
- 6. Linux环境下的pyqt4
- 7. Linux环境下的ZeroMQ
- 8. 在HP-UX环境JVM中,C堆中运行的是Java堆吗?
- 9. 在Matlab环境下运行Java代码的步骤?
- 10. 有没有办法知道我的webrole在什么环境下运行?
- 11. 在没有JVM的机器上运行Java应用程序
- 12. 环境变量java_home没有指向有效的jvm安装
- 13. java运行时环境的错误
- 14. java运行时环境中的Animation.jar
- 15. linux dnx(.net执行环境):没有正文内容的HTTP 200s
- 16. (Linux)如何在没有显示环境的情况下运行gtk程序? Gtk-WARNING **:无法打开显示:
- 17. 你有在Windows下运行的Rails开发环境吗?
- 18. 如何在文本模式Linux环境下运行JAVAWS命令行?
- 19. 在Xcode中运行没有环境变量的shell脚本?
- 20. 如何在没有本地环境的情况下进行Java Web开发
- 21. Cron Job在Linux环境下不工作
- 22. EventMachine运行循环中的Linux环境变量
- 23. 没有桌面环境的java gui
- 24. Linux环境变量行为
- 25. 在没有安装python的情况下在Linux上运行python
- 26. 在Linux环境中运行FSL命令的问题
- 27. Java运行时环境HKEY_LOCAL_MACHINE错误
- 28. java运行时环境归档文件
- 29. 运行时环境
- 30. Linux环境下的Apex Data Loader?
您可能想考虑将JVM与JAR捆绑在一起。它大约有80MB,但有很多工具可以让它变得非常简单。 –
why.do.you.put.periods无处不在? –