有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java WebStart:<property…>使用<extension>时被忽略?

在Java6U13(目前最新版本)下更新JavaWebStart应用程序时,我遇到了一个问题

我们希望使用新的机制拥有几个主配置文件,每个主配置文件都有自己的配置,然后“包括”另一个自动生成的jnlp文件,以确保jar列表的准确性。经过一段时间的修改,我已经让它工作了,除了主文件中定义的属性在调用Main时对程序不可用

主JNLP看起来像(匿名):

<jnlp>
  <information>
    <title>...</title>
    <vendor>...</vendor>
    <description>...</description>
    <description kind="short">...</description>
    <homepage href="http://....jnlp"/>
    <icon href="http://....gif"/>
    <!--          <offline-allowed/> -->
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources>
    <j2se version="1.6+"/>
    <extension href="http://...extension.jnlp" />

    <property name="server.name" value="SERVER"/>
  </resources>
  <application-desc main-class="Main"/>
</jnlp>

还有分机。jnlp看起来像:

<!-- Generated automatically.  Do not edit! -->
<jnlp>
  <information>
    <title>extension built 2009-04-22 12:39:58 CEST</title>
    <vendor>...</vendor>
  </information>
  <security><all-permissions/></security>
  <resources>
    <jar href="A.jar" />
    <jar href="B.jar" />
    <jar href="logback-classic-0.9.14.jar" />
    <jar href="logback-core-0.9.14.jar" />
    <jar href="slf4j-api-1.5.6.jar" />
  </resources>
  <component-desc />
</jnlp>

我已经试着把所有权放在分机上了。jnlp也是。没有帮助。根据Java插件控制台中的日志,JVM被重用,而不是重新启动

有什么建议吗


共 (2) 个答案

  1. # 1 楼答案

    通过实验,我发现扩展文件中定义的属性比主jnlp文件中定义的属性遵循更严格的规则,不符合规则的属性会被默默地丢弃

  2. # 2 楼答案

    我也在努力解决同样的问题
    当我将<property>元素移动到扩展jnlp时,它就可用于使用System.getProperty()的应用程序

    但这对我来说并不是一个解决方案,因为我想让扩展jnlp具有mastet jnlp中定义的所有JAR和属性

    看来

    For an untrusted application, system properties set in the JNLP file will only be set by Java Web Start if they are considered secure.

    如果想要将自己的属性传递给VM,那么它们的名称必须以javaws.jnlp.开头。这些属性被认为是安全的。<property>元素必须包含value属性,例如

    <property name="jnlp.my.property" value="a value" />
    

    链接:

    1. http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html#resources
    2. http://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/settingArgsProperties.html