如何为webstart应用程序包含外部配置

时间:2009-09-24 20:49:47

标签: java configuration java-web-start

我有需要外部配置的webstart应用程序。配置必须是外部的,因为它将由我们的客户手动更改。我考虑过用这个配置添加另一个jar。申请已签署,我们无法向客户提供钥匙。我倾向于将此文件放在Web服务器上。

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

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

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

4 个答案:

答案 0 :(得分:2)

您可以使用BasicService.getCodeBase获取代码库。

答案 1 :(得分:1)

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

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

答案 2 :(得分: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被添加到类路径中。在类路径上需要更多的罐子?添加另一个jar资源

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

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

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

到资源部分。

答案 3 :(得分:0)

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

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