如何在Java Web Start应用程序中运行时获取jnlp href属性(类似于BasicService.getCodeBase())?

时间:2010-09-15 19:25:53

标签: java jnlp java-web-start

我有一个应用程序,我通过Java Web Start部署。我有几个不同的jnlp文件用于不同的启动方案。我正在使用DownloadService2定期检查更新。当有更新时,我会提示用户。如果他们选择更新,我会启动javaws using Runtime.getRuntime().exec()的新实例,传入完整的jnlp url,然后传入I System.exit(0)。实际上,这将启动更新/重启周期。

问题是,因为我可以从几个jnlp文件中的一个开始,所以我不能简单地对网址进行硬编码。我知道我可以从BasicService.getCodeBase()获取url的host:port部分,但有没有办法获取url的文件部分?目前我在application-desc中添加一个“jnlp”参数,类似于以下内容,以便我可以从args中检索它:

<application-desc main-class="my.main.class">
<argument>jnlp=myjnlp.jnlp</argument>
<application-desc/>

我认为这会奏效,但我想知道我是否正在努力实现它。感谢。

2 个答案:

答案 0 :(得分:0)

也许最好使用DownloadService提供此功能。

答案 1 :(得分:0)

我使用我的问题中描述的方法解决了这个问题。似乎没有更好的方法。