gpt4 book ai didi

java - 如何在我的 JNLP 应用程序中修复 "missing Codebase, Permissions, and Application-Name manifest attribute"?

转载 作者:IT老高 更新时间:2023-10-28 21:07:50 26 4
gpt4 key购买 nike

随着最近的 Java 更新,许多人在他们的 Java Web Start 应用程序中遇到了问题,这些应用程序缺少 CodebasePermissionsApplication-name list 属性。尽管有资源可以帮助您完成此任务,但我找不到任何全面此问题的答案,所以我觉得问答会很好。那么问题来了:

我的 Java Web Start 应用在控制台中显示以下警告:

Missing Permissions manifest attribute for: http://www.codebase.com/myApp/dist/myApp.jar
Missing Codebase manifest attribute for: http://www.codebase.com/myApp/dist/myApp.jar
Missing Application-Name manifest attribute for: http://www.codebase.com/myApp/dist/myApp.jar

我该如何解决这个问题?

最佳答案

(1) 首先,您需要创建一个包含您要添加的所有属性的文本文件。我的文本文件如下所示:

Permissions: all-permissions
Codebase: http://www.codebase.com/myApp/dist
Application-Name: My Application

我将其命名为 addToManifest.txt。显然,您需要更改参数以满足应用程序的需求。

(2) 接下来,您需要将它添加到主 .jar 和所有库中。执行此操作的命令是:

jar ufm dist\myApp.jar addToManifest.txt

当然,dist\myApp.jar 需要指向您的主 .jar 文件。您还需要对所有库执行此操作。

jar ufm dist\lib\jcommon-1.0.16.jar addToManifest.txt
jar ufm dist\lib\jfreechart-1.0.13.jar addToManifest.txt
jar ufm dist\lib\joda-time-2.2.jar addToManifest.txt
...

(注意:在 Windows 上,我为此编写了一个 .bat 文件。)

完成此操作后,应将属性写入 .jar。您可以在 zip 管理器(如 7-Zip)中打开 .jar,解压缩 MANIFEST.MF 文件,在文本编辑器中打开它,您应该会看到列出的属性。

(3) 添加属性后,您需要退出应用。执行此操作的命令是:

jarsigner dist\myApp.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password

您还需要为所有库执行此操作:

jarsigner dist\lib\jcommon-1.0.16.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password
jarsigner dist\lib\jfreechart-1.0.13.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password
jarsigner dist\lib\joda-time-2.2.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password

之后,你的属性应该被添加并且你的 .jars 应该被签名!

注意:您只需签署/部署您的库一次,除非您更改库结构。即,如果您正在更新您的应用,但库已经更改、正确签名和部署了它们的 list ,则除非您从应用中添加/删除库,否则您无需重新签名/部署库。

注意 #2:当前版本的 Netbeans 会将 CodebasePermissions list 属性添加到您的 primary .jar only,但不是你的图书馆。如果您使用 Netbeans,当您尝试添加重复的 list 属性时,您将收到来自 jar 实用程序的警告。队列中有一个错误报告以修复此问题 https://netbeans.org/bugzilla/show_bug.cgi?id=234231 .

编辑:最新版本的 Netbeans (8.0) 现在将所有三个(CodebasePermissionsApplication-Name)添加到为你显化。

关于java - 如何在我的 JNLP 应用程序中修复 "missing Codebase, Permissions, and Application-Name manifest attribute"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19659134/

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