1

我有需要外部配置的 webstart 应用程序。配置必须是外部的,因为它将由我们的客户手动更改。我考虑使用此配置添加另一个 jar。应用程序已签名并且不能将我们的密钥提供给客户。我倾向于将此文件放置为可从 Web 服务器访问。

如何从 webstart 应用程序内部检索代码库 url,或者有没有办法配置 webstart jnlp 文件以将除 jar 之外的其他文件添加到类路径?

如果有线索,我使用 maven 进行完整构建。

任何其他想法都是可以接受的。

4

4 回答 4

2

您可以使用BasicService.getCodeBase.

于 2009-09-24T22:12:51.277 回答
1

您可以使用Java Preferences API来存储外部配置数据。这将是个人机器的本地。在 Windows 上,它使用注册表,在 Unix 上使用经典的“.xyz”文件。

您最好在您的应用程序上使用一些 UI 来操作此配置(将用户发送到 RegEdit 并不是一件好事),但它不一定是光荣的。名称/值对编辑器可以解决问题。并使用合理的默认值来启动“未配置”的应用程序。

于 2009-09-24T21:30:52.920 回答
0

在此处查看 jnlp 语法参考:http: //java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/syntax.html

对您来说重要的是“资源”标签:

<resources>
  <j2se version="1.4.2+" java-vm-args="-esa -Xnoclassgc"/>
  <jar href="lib/SwingSet2.jar"/>
</resources>

在上面的示例中,SwingSet2.jar 被添加到类路径中。在类路径上需要更多 jars?添加另一个jar资源

<resources>
 <j2se version="1.4.2+" java-vm-args="-esa -Xnoclassgc"/>
 <jar href="lib/SwingSet2.jar"/>
 <jar href="lib/SwingSetSupplment.jar"/>
</resources>

我在代码库上遇到了完全相同的问题。我最终使用了一个 JnlpServlet(你必须用谷歌搜索它。我只能发布一个超链接 :( )以在它提供 jnlp 文件时自动包含正确的代码库,然后添加

<property name="app.codebase" value="$$codebase"/>

到资源部分。

于 2009-09-24T21:24:01.190 回答
0

如果您使用JNLP 下载 Servlet,您可以将 $$codebase 宏作为系统属性传递到您的应用程序中,这样就可以访问代码库 URL。

在我们的 webstart 应用程序配置中,使用 SQL 将配置存储到服务器,但这对于您的需求可能有点重。

于 2009-09-24T21:27:10.417 回答