java web start alternative [已关闭]

我们正在寻找Java Web start的替代方案,它可以有效地做同样的事情,只是更好地实现。我们遇到了巨大的麻烦。我们有一些XP桌面的办公室,都略有不同,到目前为止,只有少数几个在没有认真调整的情况下工作过。问题与没有很好地使用代理设置有关(在Java控制面板中使用直接连接允许它工作),拒绝在设置“-Xmx”等参数时运行,但在未设置参数时运行良好(直到它耗尽内存)以及其他我们无法修复的奇怪问题。

Web start的工作方式正是我们想要的,即连接到具有该应用程序的服务器,下载任何已更改的内容,保留jars缓存等。这里的其他团队为他们的C#应用程序使用“clickonce”,它有效地做了同样的事情,但似乎不那么麻烦。

我相信我们不是唯一遇到过这种情况的人,但四处寻找并没有真正显示出任何替代方案。我们已经考虑编写一个存根本地应用程序,该应用程序本质上只是一个URLClassLoader,它通过网络动态加载我们的应用程序,但不幸的是,这在其他办公室来说太慢了。有人有什么想法吗?

谢谢

更新

如果有人对最终发生的事情感到好奇,我们又给了webstart一个月左右的时间,但仍然遇到问题,所以我们实现了自己的版本。它基本上只是一个存根,它有一个URL类加载器,你指向一个Web服务器。它<200行代码,并且已经完美地工作了几个月。这并不理想,但在有人改进webstart之前,我们会坚持下去。

2018 年更新

所以,几年后,我正在做一个有同样问题的新项目。这次我们不是编写自己的webstart实现,而是使用getdown。我们发现这是对Web Start的巨大改进,它对我们来说效果非常好。


答案 1

我的公司也正在经历Webstart的痛苦,特别是JRE 1.6更新19和20。我们的问题围绕着混合代码安全警告。(一切都已正确签名,问题是间歇性的)

Anyhoo,我偶然发现了三环。我还没有尝试过,但似乎很有希望 https://github.com/threerings/getdown/wiki


答案 2

我在公司中广泛使用 JWS。我在JWS中看到的唯一真正问题仅在您尝试从缓存运行JWS并且客户端计算机刚刚升级到较新版本的Java时才会发生。应用程序将无法启动,并显示“无法启动”,“找不到缓存文件”错误或类似错误。

我有两种方法可以解决此问题:我要么清除缓存并让他们重新安装应用程序,要么我只是让他们从我的网站再次单击URL(对我的用户来说最容易)。在这两种情况下,问题都会自行修复。这可以解释为什么这里的几个开发人员从未见过这个问题,很可能是因为他们的用户总是点击URL而不是安装的启动器。

作为一种解决方法,在我的一些任务关键型应用程序中,我在脚本中使用了以下任一方法:

java -jar netx.jar -jnlp http://url/to/my/launch.jnlp

javaws http://url/to/my/launch.jnlp

其中 netx 是第三方库。

这不是最漂亮的解决方案,但对我来说,这些工作100%的时间。

现在,如果我只能弄清楚如何从不去地狱中获取桌面快捷方式......但这是另一个时间的讨论。


推荐