我第一次使用JNLP (Java Network Launch Protocol),找不到发现问题根源的方法 .
我的应用程序基于SWING,并作为独立的JAR - Java Archive文件正确运行 . 但是,在我的部署阶段,我遇到了一个未知问题,即应用程序在the first Phase启动,但无法运行 .
我的内部应用程序Logger工具演示了应用程序没有到达我的Java Main方法的第一行 .
我的计算机Log and Trace在下面产生相同的错误,但是我能找到的大多数问题都与keytool / jarsigner阶段的编码和语言有关 .
我尝试了几种替代语言,使用不同的位置重新启动计算机,甚至尝试在不同的计算机上生成密钥库,总是产生相同的错误:
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字符(例如名称组织,甚至是别名/密码)
1 回答
看起来你缺少葡萄牙语翻译(número) . 尝试设置:
到独立jar工作正常的相同区域设置 .
为什么?从1)开始(看起来像)你通过命令行启动JNLP . 2)Locale是一个OS / shell敏感设置 . 3)您的跟踪文件表明JVM是葡萄牙语 . 4)这是一个已知的缺失翻译案例,如this bug .
也许缺失/错误的翻译不是来自您的代码,而是来自库 . 这就是为什么我会尝试通过JNLP设置语言环境 .