我有一个应用程序,我通过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/>
我认为这会奏效,但我想知道我是否正在努力实现它。感谢。