正确签名的 JNLP 应用程序无法在 Java 7 中运行

2024-05-16

我有一个 JNLP 应用程序,由于证书过期需要更新。我有一个经过 CA 验证的新证书。我已将新证书导入到我的密钥库中 - 我已导入完整的证书链。

我的构建文件对构建中的 jar 进行签名和时间戳

    <signjar alias="myAlias"
            keystore="myKeystore"
            storepass="storepass"
            keypass="keypass"
            lazy="false"
            tsaurl="http://timestamp.globalsign.com/scripts/timestamp.dll">
        <path>
            <fileset dir="${app.dist.dir}" includes="**/*.jar" />
        </path>
    </signjar>

编译后我可以使用 jarsigner 验证 jar 文件。一切检查都正常,“jar 已验证”,没有任何警告。

使用 Java 6 编译并使用类似的东西运行应用程序

"C:\Program Files\Java\jdk1.6.0_38\bin\javaws.exe" -verbose start.jnlp

工作正常。弹出窗口告诉我该应用程序已正确认证。我可以查看证书,一切看起来都很好。

使用 Java 7 编译并使用类似的东西运行应用程序

"C:\Program Files\Java\jdk1.7.0_51\bin\javaws.exe" -verbose start.jnlp

失败。 “Java 安全设置已阻止此应用程序运行。您可以在 Java 控制面板中更改此行为”

我尝试将安全设置降低到“中”,但这不起作用,并且对我来说不是一个可行的解决方案,因为该应用程序可在互联网上使用。

我尝试在 Java 6 中编译并在 Java 7 中运行,得到相同的结果。

我没有收到任何错误消息。我已经这样做了几个小时了,在消除了许多问题和警告之后,我现在完全陷入困境。我已附上 JNLP 文件,它很有帮助!

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="6.0" codebase="http://localgocommunicate1.x.accessacloud.com:8080/a/theaccessgroup.com" href="http://localgocommunicate1.x.accessacloud.com:8080/a/theaccessgroup.com/client/desktop/start.jnlp">
    <information>
        <title>My App</title>
        <vendor>Company Ltd</vendor>
        <homepage href="http://www.myApp.com"/>
        <description>My App</description>
        <description kind="short">My App</description>      
        <icon href="http://localhost:8080/desktopclient/images/icon.gif"/>
        <icon kind="splash" href="http://localhost:8080/desktopclient/images/splash.gif"/>
        <offline-allowed/>
        <shortcut online="true">
            <menu submenu="Startup"/>
            <menu submenu="My App"/>
        </shortcut>
    </information>
    <security>
        <all-permissions/>
    </security>
    <update check="timeout" policy="always"/>
    <!-- Global Resource -->
    <resources>
        <j2se version="1.7*" java-vm-args="-Xmx32m" max-heap-size="32m" href="http://java.sun.com/products/autodl/j2se"/>
        <!-- App Common Resources -->
        <jar href="http://localhost:8080/desktopclient/6/myappclient.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/myappshared.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/myappclient.resources.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/myapplibrary.jar" download="eager"/>
        <!-- Common Resrouces -->
        <jar href="http://localhost:8080/desktopclient/6/lib/commons-logging-1.1.3.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/lib/log4j-1.2.17.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/lib/commons-beanutils-1.9.1.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/lib/commons-codec-1.9.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/lib/commons-collections-3.2.1.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/lib/commons-digester-2.1.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/lib/commons-fileupload-1.3.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/lib/commons-httpclient-3.1.jar" download="eager"/>
        <jar href="http://localhost:8080/desktopclient/6/lib/commons-io-2.4.jar" download="eager"/>
        <!-- JNA -->    
        <jar href="http://localhost:8080/desktopclient/6/lib/jna-4.0.0.jar"/>
    </resources>
    <!-- OS Specific Resources -->
    <resources os="Windows" arch="x86" href="http://java.sun.com/products/autodl/j2se">
        <jar href="http://localhost:8080/desktopclient/6/swt/swt-ws-win32-win32-x86.jar" />
    </resources>
    <resources os="Windows" arch="x86_64" href="http://java.sun.com/products/autodl/j2se">
        <jar href="http://localhost:8080/desktopclient/6/swt/swt-ws-win32-win32-x86_64.jar" />
    </resources>
    <resources os="Windows" arch="amd64" href="http://java.sun.com/products/autodl/j2se">
        <jar href="http://localhost:8080/desktopclient/6/swt/swt-ws-win32-win32-x86_64.jar" />
    </resources>
    <resources os="Mac OS X" arch="x86_64" href="http://java.sun.com/products/autodl/j2se">
        <j2se version="1.6+" java-vm-args="-XstartOnFirstThread"/>
        <jar href="http://localhost:8080/desktopclient/6/swt/swt-ws-cocoa-macosx-x86_64.jar" />
    </resources>
    <application-desc main-class="myappclient.Client">
        <argument>-version</argument>
        <argument>6</argument>
    </application-desc>
</jnlp>

非常感谢任何帮助


好的,我有一个适合我的解决方案。

  1. 确保使用最新版本的 JDK 进行编译,在本例中为 1.7.0_51-b13
  2. 更新 JNLP 文件以强制执行 Java 1.7

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正确签名的 JNLP 应用程序无法在 Java 7 中运行 的相关文章

  • LoaderManager 不接受“这个”

    好吧 我投降 我想不明白 我正在学习 Udacity 的 Android 基础知识课程 需要了解如何使用加载器加载数据 但是 当我使用以下行时 this 以红色突出显示并显示以下错误 Wrong 3rd argument type Foun
  • 将 Spring 的 @Scheduled 注解与特定执行器一起使用

    如何告诉我的 Spring 计划方法使用特定的执行器运行 例如 这是我的 spring 调度程序方法之一 Scheduled fixedRate 1000 public void scheduleJobs doThese 这是我的 Java
  • 使用translateX()和translateY()时,窗格布局内的JavaFX文本与其他元素重叠

    下图是对正在发生的情况的描述 我有一个Pane其中包含一个Text我正在使用下面的代码来制作marquee like effect of the Text 所以当Pane没有足够的空间来显示文本 动画正在开始 文本必须来回移动 以便用户可以
  • 在总是抛出方法之后如何检测死代码?

    考虑以下代码 Test public void testDeadCode letsThrow System out println will never be reached private final void letsThrow thr
  • 使用 Netbeans 导出 JAR

    如何使用Netbeans将java项目导出到JAR 我找不到像 Eclipse 那样的选项 您需要启用该选项 Project Properties gt Build gt Packaging gt Build JAR after compi
  • 从 QueryDSL 谓词对象中获取参数

    我使用带有 Spring REST 端点的 QueryDSL 谓词对象来检索和查询参数值 GetMapping subjectId students RolesAllowed Roles PLATFORM ADMIN Roles USER
  • 异步方法的默认 EJB 事务模式?

    当我有一个 AsynchronousEJB 中的方法 并且我没有指定 TransactionAttribute 那么容器到底是如何处理事务边界的呢 显然 它不能使用调用线程的事务 那么它是做什么的呢 同样的问题 但涉及由 TimerServ
  • 在使用 Selenium 和 java 时在网格中应用过滤器后无法选择第一行[棘手的情况]

    我遇到了这种奇怪的情况 找了好久都没有成功 请问这是怎么回事 让我给你解释一下 我正在尝试在网页中创建自动化 我必须输入 动态表中的特定值以及执行 ENTER 事件后 需要选择显示的第一行 运行我的代码后 我得到了这个 但显示的行未被选择
  • 使用 Spring RestTemplate 时忽略 SSL 证书验证

    我正在使用 Spring RestTemplate 发出 HTTPS 请求 并且我想忽略 SSL 证书 这是我创建restTemplate请求的代码 TrustStrategy acceptingTrustStrategy X509Cert
  • 如何按照最初给出的时区存储和显示日期?

    我有一台服务器正在从不同时区的客户端提供数据 数据源包含人物 他们的出生日期和其他事件日期 出于我们的目的 如果我们可以将日期存储为给我们的日期 那就很方便了 例如 如果客户位于加利福尼亚州 并且告诉我们该人的出生日期是 5 月 31 日
  • SAP Spartacus 表单个性化

    如果已经有使用给定电子邮件注册的帐户 我需要修改注册表以显示错误消息 SAP Hybris 后端 Angular 中的 Spartacus 店面 目前 我有一个自定义验证器类 它可以正常工作 import org springframewo
  • 为什么Java不支持C中的clrscr这样的函数?

    我有一个问题 对很多人来说可能听起来很愚蠢 但我不能停下来把它发布在这里 因为在互联网上找不到任何东西 为什么java没有我们在C中使用的clrscr之类的函数 如果我创建了一个基于用户输入反复迭代的 java 控制台应用程序 然后如果我想
  • java.util.Prefs 抛出 BackingStoreException - 为什么?

    我有一个系统可以缓存启动时 SOAP 调用的微小 简单结果 我需要实例能够在启动时重新加载其缓存 以防 SOAP 服务失效 并且还需要处理使用此缓存文件的多个实例的可能性 我选择使用java util prefs但是 Java 的内置自动同
  • JPanel 上的圆形边框

    我这里得到的是一个带有圆形边框的 JPanel 其设置如下 panel setBorder new LineBorder PanelColor 5 true 问题是 在每个角上都有 2 条从外角到内角的对角不透明线 即边框的长度 边界后面的
  • 如何将报告导出为 PDF/A-1a、PDF/A-1b?

    在 jasper report 中生成 PDF A 包含许多陷阱 并且某些版本的 jasper report 不支持 这就是为什么我决定通过这个Question Answer 帖子 指示将带有图表的简单报告导出为 PDF A 所需的步骤和库
  • Java ReentrantReadWriteLocks - 如何在读锁中安全地获取写锁?

    我现在在我的代码中使用可重入读写锁 http java sun com javase 6 docs api java util concurrent locks ReentrantReadWriteLock html同步对树状结构的访问 这
  • Resilience4j 重试 - 记录来自客户端的重试尝试?

    是否可以使用resilience4j在客户端记录重试尝试 也许通过某种配置或设置 目前 我正在将resilience4j与Spring boot Webflux一起使用基于注释 它运作良好 该项目很棒 当我们将服务器日志放在服务器端时 为了
  • 无法在 Windows 7 64 位中正确设置 java 路径

    我已经在计算机中安装了 java 1 6 并且还使用高级变量设置设置了路径 当我尝试执行 java 时 在命令提示符下出现此错误 Error could not open C Program Files Java jre7 lib amd6
  • 根据 netbeans 中的单选按钮切换组件的“启用”属性

    我在按钮组中有两个单选按钮 在同一面板中我有一个文本框和一个按钮 我想仅在选择第二个按钮时启用文本框和按钮 并在选择另一个单选按钮时禁用文本框和按钮 我已经尝试过这个但没有成功 private void radio button2Actio
  • SnakeYaml“无法找到属性错误”

    这是我的 config yml 的一部分 Authenctication AuthenticationConfig AuthencticationType LDAP LDAPConfig LDAPUrl ldap localhost 389

随机推荐