2012-02-23 139 views
0

对于我来说,这仍然是一段时间,但对于我的项目实现类,我们必须创建一个程序然后分发它。我已经用Java写了一个应用程序,并且根据我在前一课(Project Design)中所做的规范,我的应用程序需要与平台无关。如何为Java应用程序创建安装程序?

对于mac和linux用户可以从终端运行jar文件,但对于Windows,我希望将应用程序安装到用户选择的路径(默认:C:\ Program Files(x86)\ NameOfApplication) ,创建一个桌面快捷方式(如果用户希望拥有一个),请在开始菜单下安装(如果用户需要),然后显示在添加/删除程序列表中。

有没有简单的方法来做到这一点?

如果我决定为mac和linux创建安装程序,难道会更困难吗?

在此先感谢。

+4

之前已经讨论了很多次......在请求之前请做一些搜索 – 2012-02-23 14:01:07

+1

......太多......重复......无法计算...... – epoch 2012-02-23 14:19:08

+0

可能的重复[如何使安装程序多平台的Java桌面应用程序?](http://stackoverflow.com/questions/979572/how-to-make-installer-of-java-desktop-application-for-multi-platform) – Caleb 2012-02-23 23:06:10

回答

0

Install4j做你想做的,虽然你必须付出代价。就我个人而言,我不知道有任何替代品。您也可以为Linux和Mac OS制作安装程序。

2

即使对于Java应用程序,也可以使用NSIS创建安装程序。

您也可以考虑通过Java Web Start分发您的应用程序。

+1

似乎Java Web Start作为分发Java应用程序的预期路线。 – arbn 2012-02-23 14:04:38

0

你可以做到大部分使用标准JNLP的:

http://docs.oracle.com/javase/1.4.2/docs/guide/jws/developersguide/syntax.html

你让一个JNLP文件需要从一些地方的可执行的JAR(或远程)位置并为其创建一个桌面图标(您的选择)。唯一不同的是,实际的JAR将被放置在JDK的jar缓存目录中(不在您选择的目录中 - 我认为用户不会太在意)。

这样做的一个巨大优势是,如果您创建一个从远程位置安装jar的JNLP,则可以远程将新版本的jar上传到该位置,并且当用户下一次在本地访问jar时,最新版本将被下载并放入本地缓存中。

另外我建议你使用一个聪明的“胖JAR”生成器,它将可执行jar中的所有依赖关系包打包。 Eclipse IDE有一种以这种格式导出项目的方法(并且还添加了必要的类加载器,以便在fat jar中可以正常工作)。

1

有java的开源安装程序生成器。我以前从未使用过。这里是links

一个很好的资源,我建议使用Java Web Start的

它有几个优点。

  1. 适用于所有主流桌面平台
  2. 所有启用JWS的平台
  3. 代码签名和沙盒
  4. 版本和增量更新单分布
  5. JRE和可选包
  6. 的自动安装

它有一个主要的缺点。如果JWS,JRE,和/或可选的 包不存在系统

看一看上

  1. 需要连接Internet herehere

0

如果你的目标操作系统是Windows我强烈推荐高级安装程序。它非常易于使用,并且可以让您使用特定的目标Java VM和一些有用的Windows功能(即使在免费版本中)创建自己的本地微软安装程序(.msi)。请注意,您还可以在包中加入一个专用的jre。

http://www.advancedinstaller.com/top-freeware-features.html

如果你想要一个“包一个随处部署”的解决方案,然后是的IzPack要走的路,平台独立的,自由和开放源码。

http://izpack.org/

根据您的项目Java Web Start的可能是一个非常好的选择的复杂性,这是非常简单的配置和维护,但它依赖于浏览器的Java插件,相信我......大多数用户DON” T喜欢每次启动应用程序时都会对证书和风险提出警告。

相关问题