【问题标题】:How to get jnlp href attribute at run time in Java web Start app (similar to BasicService.getCodeBase())?如何在 Java web Start 应用程序中在运行时获取 jnlp href 属性(类似于 BasicService.getCodeBase())?
【发布时间】:2011-04-12 20:57:45
【问题描述】:

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

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

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

我认为这会奏效,但我想知道我是否让它变得比需要的更难。谢谢。

【问题讨论】:

    标签: java jnlp java-web-start


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我知道 DownloadService 类,但我不确定如何使用它来获取当前运行的应用程序的 jnlp 文件的名称。你能详细说明一下吗?
      • 我很抱歉。我误读了这个问题,DS 不会解决所述问题。 :(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 2010-12-27
      • 2010-12-03
      • 2016-01-02
      相关资源
      最近更新 更多