gpt4 book ai didi

java - System.getProperty 无法读取 jnlp - 自 java 7 以来的资源 - 这可能是因为未签名的 JNLP 文件

转载 作者:行者123 更新时间:2023-12-01 13:24:24 25 4
gpt4 key购买 nike

我尝试重现一个自 Java 7 以来就被破坏的 Java Web Starter 应用程序。它以前工作过。所有 Jar 文件均已签名。

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

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

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

  1. 我是否必须签署 JNLP 文件才能获取资源标签?
  2. 如果我这样做,我该怎么做?我读到我必须将它放在与启动类相同的 jar 中,但我没有找到如何执行此操作的良好说明。
  3. 我读到,jnlp 必须命名为 APPLICATION.JNLP 并且必须位于 JNLP-INF 文件夹中。有这个必要吗?有这个文件夹吗?他可以在吗?
  4. 我阅读了 Oracle 的发布日志,了解 Java 7 中的新增功能。我没有发现 System.getProperty 的更改,并且在此函数中使用了 SecurityManager。我说得对吗,这没有改变?

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

好的,这是我尝试获取资源标签之一的行:

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

strApiPath 为空。

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 都需要使用证书进行签名(不是使用自签名证书)
  • list 文件需要更新 - 请参阅 this link

一些输出是警告,但“权限”标记是必需的标记。

您遇到什么类型的错误?

关于java - System.getProperty 无法读取 jnlp - 自 java 7 以来的资源 - 这可能是因为未签名的 JNLP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21848137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com