java - 无法启动基于 Java Web Start JNLP 的应用程序(单签名 JAR)

标签 java java-web-start jnlp

我正在使用JNLP (Java Network Launch Protocol)第一次,找不到找到问题根源的方法。

我的申请是SWING基于,并作为独立运行正确JAR - Java Archive文件。 但是,在我的部署阶段,我遇到了一个未知问题,应用程序在 the first Phase 处启动。 ,但不运行。

我的内部应用程序记录器工具表明应用程序未到达我的 Java Main 方法中的第一行。

我的计算机日志和跟踪产生了以下相同的错误,但是我发现的大多数问题都与 keytool/jarsigner 阶段的编码和语言有关。

我尝试了几种替代语言,使用不同的位置重新启动计算机,甚至尝试在不同的计算机中生成 keystore ,总是产生相同的错误:

javaws.trace

Log started: Fri, 11 Aug 2017 12:03:49 -0300
Java Web Start 11.141.2.15
Usando a versão do JRE
 1.8.0_141-b15 Java HotSpot(TM) 64-Bit Server VM
#### Java Web Start Error:
java.lang.IllegalArgumentException: unknown format type: número
    at java.text.MessageFormat.makeFormat(Unknown Source)
    at java.text.MessageFormat.applyPattern(Unknown Source)
    at java.text.MessageFormat.<init>(Unknown Source)
    at java.text.MessageFormat.format(Unknown Source)
    at com.sun.deploy.resources.ResourceManager.applyPattern(Unknown Source)
    at com.sun.deploy.resources.ResourceManager.getString(Unknown Source)
    at com.sun.javaws.exceptions.JNLParseException.getRealMessage(Unknown Source)
    at com.sun.javaws.exceptions.JNLPException.getMessage(Unknown Source)
    at com.sun.javaws.ui.LaunchErrorDialog.getMessage(Unknown Source)
    at com.sun.javaws.ui.LaunchErrorDialog.show(Unknown Source)
    at com.sun.javaws.Main.launchApp(Unknown Source)
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
    at com.sun.javaws.Main.access$000(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我的 JNLP 文件:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://www.myFakeSite.com/" href="myJNLP.jnlp">
    <information>
        <title>TITLE</title>
        <vendor>VENDOR</vendor>
        <homepage href ="http://www.myFakeSite.com"/>
        <description>MY APPLICATION</description>
        <description kind="short">My Application Description</description>
        <icon href="./imgs/splash.png"/>
        <icon kind="splash" href="./imgs/splash.png"/>
        <icon kind="shortcut" href="./imgs/icons.ico"/>
        <offline-allowed/>
        <shortcut online="false" install="true">
            <desktop/>
            <menu submenu="MENU">
                <menu submenu="SUB_MENU"/>
            </menu>
        </menu>
    </shortcut>
    </information>
    <update check="background" policy="prompt-update"/>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.8+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="MYJAR.jar" main="true"/>
    </resources>
    <application-desc
        main-class="Main">
</jnlp>

在 WAMP 服务器上运行,MIME 按预期工作,并且 Mozzila Firefox提示用户启动 Java Web Start (javaws)

编辑:2017 年 8 月 17 日

我已经进行了一些更改,并且能够使其工作,但是,我仍然希望了解问题的根源,所以我不会关闭/删除这个问题。

据我所知,解决方案是创建一个简化的 JNLP 文件,仅包含基础知识,并创建一个新的 KeyStore,完全仅使用 ANSI 字符(例如名称组织,甚至别名/密码)

最佳答案

您似乎缺少葡萄牙语翻译 (número)。 尝试设置:

<resources locale=""

到独立 jar 工作正常的相同区域设置。

为什么? 由于 1)(看起来像)您正在通过命令行启动 JNLP。 2) 区域设置是操作系统/外壳敏感的设置。 3)您的跟踪文件表明 JVM 使用葡萄牙语。 4)这是一个已知的翻译缺失案例,如this bug .

也许丢失/错误的翻译不是来自您的代码,而是来自库。这就是为什么我会尝试通过 JNLP 设置语言环境。

关于java - 无法启动基于 Java Web Start JNLP 的应用程序(单签名 JAR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45638910/

相关文章:

java - 如何使用马尔可夫链生成句子?

java - 安全异常 : MalformedURLException: unknown protocol: socket during opening JNLP file

Java 1.6 -> 1.7 JNLP = SIGSEGV

java - Webstart 应用程序未为所有用户启动

java - 如何重写库类的方法或分配参数值?

java - 如何设置 GWT Datepicker 月份标签的格式?

java - 通过分阶段下载加速应用程序加载

java - Apple Java 更新 1.6.0_51 后 Swing 应用程序卡住了

java - 签名的 JNLP 会产生更多的安全对话框

java - JsonProperty 会序列化但不会反序列化