如何安装java程序?
我在Eclipse工作区中保存了一个应用程序。
我可以将其导出为.jar
文件。
这是一个“真实世界”的应用程序。
如何导出为“.exe”文件或“.dmg”以便可以将其安装到另一台计算机上?
由于Java是独立于平台的,我认为这是出口特定操作系统的问题。
我搜索了很多并阅读了很多不同的故事,所以我更希望得到有经验的人的回答。
答案 0 :(得分:9)
答案 1 :(得分:4)
Jar文件通常是要走的路,因为JVM可以通过java -jar <jarfile>
命令直接执行打包文件。如果您想从网站等分发您的应用程序,Java WebStart是很好的。但是,即使JVM存在,某些操作系统也没有安装该“功能”。另一个解决方案是至少有3个脚本来启动你的应用程序(Windows的批处理,Linux的shell脚本,以及Mac需要的任何东西 - 抱歉,没有Mac - )。
不要创建本机可执行文件(即Windows的exe文件),因为你已经有了JVM,所以它们是多余的。
答案 2 :(得分:2)
我在这里冒着火焰,但我是游戏:) 除非您已经知道存在JRE的平台(例如OS X),否则对您和/或最终用户来说将是一件麻烦事。问题是java应用程序根本不是独立的,而是依赖于庞大的框架。
JRE,Java Web Start或您使用的任何内容都必须放在目标系统上。此外,你必须有一个类型的发射器。它可能像运行java的脚本一样简单,提供类路径等。如果java“编译”为.exe或其他东西,那就不需要了。但这就是它的工作方式。
这是我关闭将Java部署到最终用户计算机的原因之一。这只是一个很麻烦的事情。我曾经在一个项目中工作,我们实际上嵌入了安装程序部署的整个私有jre。它不是很漂亮,但它完成了工作。
答案 3 :(得分:1)
从Java 8开始,jdk现在能够为Windows,OSX和Linux生成自己的Installables。但是,在Windows上,它取决于Inno Setup 5或更高版本或WiX 3.0或更高版本。
https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1324980
生成自包含应用程序的最简单方法是修改部署任务。
<fx:deploy width="${javafx.run.width}" height="${javafx.run.height}" nativeBundles="all" outdir="${basedir}/${dist.dir}" outfile="${application.title}"> <fx:application name="${application.title}" mainClass="${javafx.main.class}"/> <fx:resources> <fx:fileset dir="${basedir}/${dist.dir}" includes="*.jar"/> </fx:resources> <fx:info title="${application.title}" vendor="${application.vendor}"/> </fx:deploy>
答案 4 :(得分:0)
您可以使用Java WebStart,或将程序打包为executable jar文件。
答案 5 :(得分:0)
伙计们已经给了你很多选择,所以我不想再提它们了。这里缺少的唯一选择是当你真正需要安装程序时,意味着执行一些逻辑,修改(或至少读取)系统配置,创建桌面快捷方式,复制许多文件,配置第三方产品(可能是已安装)等。
在这种情况下,您可以使用InstallAnywere,EzPack或类似解决方案(请参阅http://java-source.net/open-source/installer-generators) 例如,如果您的项目相对简单,我建议您使用AntInstaller。
顺便说一句,如果您担心您的客户可能没有在他的机器上安装JRE,您可以使用从您的Java代码生成可执行文件的Launch4J打包您的代码(或更好的加载程序)。