2017-08-11 188 views
1

我第一次使用JNLP (Java Network Launch Protocol),并找不到找到问题根源的方法。无法启动基于Java Web Start的JNLP应用程序(单个签名JAR)

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

我的内部应用程序记录器工具演示应用程序没有达到我的Java Main方法的第一行。

我的计算机日志和跟踪在下面产生相同的错误,但是我发现的大多数问题都与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提示用户STA室温的Java Web Start的(javaws的)

编辑:17/08/2017

我已经执行了一些变化,并且能够使它发挥作用,但是,我仍然希望了解问题的根源,所以我不会关闭/删除这个问题。

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

+0

启用JRE的控制台输出并发布。 – Sal

+0

@Sal你的评论混淆了我。我已经将JRE输出添加到问题中。我有'未知来源'这一事实是我无法找到接下来要搜索的地方。 – Bonatti

+0

对不起,困惑。由于1)我们有很多选项来获取java中的跟踪/日志文件。和2)自从上次我检查你不能从JNLP弹出控制台。 3)我记得你通过命令行使用了javaws的'-verbose'选项。4)我不能假定日志文件包含整个控制台输出。 – Sal

回答

-1

看起来你有一个失踪的翻译(número)葡萄牙语。 尝试设置:

<resources locale="" 

要在其独立位置罐子正常工作相同的语言环境。

为什么? 由于1)(看起来像)你通过命令行启动JNLP。 和2)区域设置是一个OS/shell敏感设置。 和3)您的跟踪文件表明JVM使用葡萄牙语。 和4)这是一个已知的缺失翻译的情况,如this bug

也许遗漏/错误的翻译不是来自你的代码,而是来自一个库。所以这就是为什么我会尝试通过JNLP设置区域设置。

+0

在我的整个项目中没有这样的XML或者这样的字符串,而且我收到的错误出现在我的'main'的第一行之前,所以我不确定这是因为这个尝试回答我的问题,我很欣赏这个尝试。 – Bonatti

相关问题