java web start替代方案

时间:2010-07-15 09:42:09

标签: java deployment java-web-start urlclassloader

我们正在寻找Java web start的替代方案,它可以有效地执行相同的操作,只是更好地实现。我们遇到了大麻烦。我们有一些XP桌面办公室,所有办公室都略有不同,到目前为止只有少数办公室没有认真调整。问题与不能很好地使用代理设置(使用Java控制面板中的直接连接允许它工作),拒绝在设置“-Xmx”之类的参数时运行,但是当它们不运行时运行正常(直到它运行内存不足)和其他我们无法解决的奇怪问题。

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

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

由于

更新

如果有人对最终发生的事情感到好奇,我们给了webstart一个月左右的时间,但是我们继续遇到问题所以我们实施了自己的版本。它基本上只是一个存根,它有一个指向Web服务器的URL类加载器。它是< 200行代码,几个月来一直运行良好。它并不理想,但在有人改进webstart之前我们会坚持下去。

更新2018年

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

5 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:5)

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

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

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

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

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

其中netx是第三方库。

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

现在,如果我只能弄清楚如何让桌面快捷方式不会下地狱......但这是另一次的讨论。

答案 2 :(得分:2)

我发现你所有的事情都很奇怪。我曾在一家公司工作过一段时间,在一家公司使用JWS分销其交易软件,它总是很好用。在放弃整个技术之前,您是否考虑过查看the unofficial Java web start FAQ

答案 3 :(得分:2)

我们也经常使用JWS,因为大约1-6_19,它真的开始变得很痛苦。一些应用程序启动1-6_19其他人没有,然后我们更新到1-6_20,它是另一种方式。然后更新到1-6_21 / 2/3/4并且问题只会改变。我们可能会放弃。自从Oracle接管以来,开发团队似乎发生了变化。否则,没有其他解释可以让JWS变得更糟。

答案 4 :(得分:2)

GetDown似乎也很脆弱。我刚试了一些他们做广告的游戏网站作为实例。它们都无法在我的Firefox中加载。也许我的Java与Firefox集成是罪魁祸首?我在JDK 1.6 64位之后安装了JRE 7 32位。

一般来说,Web Start问题和糟糕的用户体验很多次都与用户计算机上安装Java的方式有关。在Windows上我注意到如果你在较新版本之后安装旧版本的Java(期望它们将共存),我开始遇到运行applet和WS应用程序的问题。