Sun的Deployment Toolkit包含用于安装特定JRE版本的功能,但它需要使用Web浏览器。 桌面应用程序如何以编程方式下载JRE (不使用浏览器)?
答案 0 :(得分:1)
您也可以使用java web start从桌面快捷方式启动应用程序。如果这样做,那么Web start框架可以下载并安装JRE,就像它是从浏览器启动一样。
如果您将应用程序分发为基于浏览器的Web启动应用程序,则可以在jnlp文件中设置属性,以便在首次启动时创建开始菜单和/或桌面图标。如果您选择其他分发表单,则可以手动创建将调用 javaws 的快捷方式。
答案 1 :(得分:1)
您可能想查看Sun的kernel installer for Java - 它相当小,并负责在后台下载并安装到完整的JVM。根据您部署应用的方式,这可能足够小,只需包含它即可。在我们的应用程序中,即使这个安装程序太大,我们也会检测当前安装的JRE,然后在检测到必要时下载内核安装程序。
您始终可以从安装系统使用http下载(在Web浏览器之外)来获取内核安装程序,然后运行它。我们使用NSIS,有许多http下载库可以很好地工作。还有几个NSIS插件可以检测正确的Java版本。这两个功能的组合对我们来说已经足够了。
编辑 - 如果您使用NSIS,here's a plugin将从安装内部通过http或ftp下载文件。
这是一个full featured Java launcher using NSIS。我不关心实际启动应用程序的具体技术 - 使用javaw.exe - 但检测JRE版本,UAC提升,下载JRE安装程序的一般方法是合理的。我们有自己的启动器(而不是java.exe),它允许我们拥有自己的进程名称,图标等......
就个人而言,我建议在安装过程中进行这类工作。
答案 2 :(得分:0)
您可以使用JSmooth在启动时检查Java,然后允许用户安装它。
如果您想要静默安装,则需要MSI版本(适用于Windows),据我所知,这是非公开的。