System.getProperty 无法读取 jnlp - 资源,因为这可能是因为未签名的 JNLP 文件吗



我试图重新启动一个Java Web Starter应用程序,该应用程序自Java 7以来就已损坏。它以前是有效的。所有Jar文件都已签名。

我试图从我的jnlp文件中获取资源标记的信息。

我使用System.getProperty,但它返回null。

我搜索了一段时间,但没有找到以下问题的答案:

  1. 我必须签署JNLP文件才能获得resources标签吗
  2. 如果我这样做了,我该怎么做?我读到我必须像开始上课一样把它放在同一个罐子里,但我没有找到如何做到这一点的好指示
  3. 我读到,jnlp必须命名为APPLICATION.jnlp,并且必须在jnlp-INF文件夹中。这有必要吗?有这个文件夹吗?他能在那里吗
  4. 我阅读了oracle发布的Java7中的新增内容。我没有发现System.getProperty的更改,并且此函数中的使用了SecurityManager。我说得对吗,这并没有改变

这是我认为代码的重要部分:

好的,这是我试图得到的一行资源标签:

String strApiPath = System.getProperty("apipath");
System.out.println(strApiPath);

strApiPath为null。

jnlp的资源部分看起来像:

<resources> 
<j2se version="1.5+" initial-heap-size="64m" max-heap-size="512m"/>

<jar href="dist/pathtool-2.jar"/>
<jar href="jars/resources.jar"/>
<jar href="jars/reporting-api-javaclient.jar"/> 
<jar href="jars/commons-collections-3.2.jar"/>
<jar href="jars/colt.jar"/>
<jar href="jars/jdom.jar"/>

<jar href="jars/ptjung1.7.jar"/>
<jar href="jars/commons-configuration-1.2.jar"/>
<jar href="jars/commons-httpclient-3.1.jar"/>
<jar href="jars/commons-lang-2.1.jar"/> 
<jar href="jars/commons-logging-1.1.jar"/>
<jar href="jars/commons-logging-api-1.1.jar"/>
<jar href="jars/commons-codec-1.3.jar"/>
<jar href="jars/jnlp.jar"/>

<!-- http or https -->
<property name="protocol" value="http"/> 
<!-- Domainname or ip -->
<property name="host" value="localhost"/>
<property name="port" value="8080"/>
<property name="proxyactive" value="false"/>
<property name="proxyhost" value="false"/>
<property name="proxyport" value="false"/>
<property name="webuser" value="dummy"/>
<property name="webpwd" value="dummy"/>
<property name="apipath" value="../../api_basic"/> 
<property name="user" value="123"/> 
<property name="psw" value="123"/> 
<property name="datasource" value="eval"/>
</resources> 

从java7 update51开始,对web启动应用程序有了新的要求。

  • 所有jar都需要使用证书进行签名(而不是使用自签名证书)
  • 清单文件需要更新-请参阅此链接

有些输出是警告,但"permissions"标记是必需的标记。

你犯了什么样的错误?

相关内容

最新更新