2010-09-15 63 views
0

我有一个应用程序,我通过Java web Start进行部署。对于不同的启动场景,我有几个不同的jnlp文件。我正在使用DownloadService2定期检查更新。当更新可用时,我会提示用户。如果他们选择更新,我会启动一个javaws using Runtime.getRuntime().exec()的新实例,传递完整的jnlp URL,然后是System.exit(0)。实际上,这将启动更新/重新启动循环。如何在运行时在Java Web Start应用程序中获得jnlp href属性(类似于BasicService.getCodeBase())?

问题是,因为我可以从几个jnlp文件之一开始,所以我不能简单地对url进行硬编码。我知道我可以从BasicService.getCodeBase()获得url的host:port部分,但有没有办法获取url的文件部分?目前,我加入了“JNLP”参数传递给应用程序递减类似于以下,这样我可以从ARGS检索:

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

我认为这会工作,但我想知道如果我使它比它需要更困难。谢谢。

回答

0

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

0

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

+0

我知道DownloadService类,但我不知道如何使用它来获取当前运行的应用程序的jnlp文件的名称。你能详细说明吗? – ajh158 2010-09-16 13:27:14

+0

我的歉意。我误解了这个问题,并且DS不能解决这个问题。 :( – 2010-09-16 23:33:40

+0

没问题,谢谢你的回应。 – ajh158 2010-09-17 18:15:57

相关问题