启动Web Start应用程序时出现NullPointerException

4

在最终解决了jar签名问题(感谢大家的帮助!)之后,现在又出现了一个新问题。

尝试从launch.jnlp文件启动Web Start应用程序时,我收到以下错误:

java.lang.NullPointerException
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

如果我使用指向我的计算机上的jar文件的jnlp文件,则应用程序运行良好,但如果我尝试在网站上使用jar文件,则会出现上述错误。
问题是什么?
jnlp文件具有正确的格式,否则为什么它会在本地jar文件上工作?
这是jnlp:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp spec="1.0+">
    <information>
        <title>ExcelReader</title>
        <vendor>Adam</vendor>
        <homepage href="http://www.appquad.com"/>
        <description>ExcelReader</description>
        <description kind="short">ExcelReader</description>


    <offline-allowed/>
  </information>
    <update check="background"/>
    <security>
<all-permissions/>
</security>
    <resources>
       <j2se version="1.7+"/>
       <jar href="http://www.appquad.com/ExcelCopyApp/sExcelReader.jar" main="true"/>
       <jar href="http://www.appquad.com/ExcelCopyApp/lib/jxl.jar"/>
     </resources>
     <application-desc main-class="excelreader.ExcelCopyApp">

     </application-desc>
    </jnlp>

这是完整的堆栈跟踪吗? - Konstantin Yovkov
是的,就是这样。这是它给我的全部内容。 - Adam
似乎WebStart无法找到您的主类。您的JNLP文件中应该有一行,类似于<jar href="yourjar.jar" main="true"/>。那行代码是什么意思? - vaughandroid
为什么这个应用程序是1.7+ - 它使用了哪些1.7功能?如果删除security元素,是否会发生相同的异常? - Andrew Thompson
2个回答

2

如果它的格式不正确,为什么它会在我本地的JAR文件中运行成功呢? - Adam
2
我看了Mi Mee的链接,在里面它说要将codebase和href添加到jnlp标签中。问题解决了。我以为这些属性不再需要了... 真奇怪。谢谢大家的帮助。 - Adam
1
有关JNLP的验证,请参见JWS信息页面中的链接之一(指向JaNeLA的链接)。由于Mi Mee指向了规范,提示了代码库/ href的问题,因此将其标记为“正确”是有意义的。 - Andrew Thompson

0

我曾经遇到过类似的问题。当我尝试通过jnlp启动应用程序时,我遇到了以下异常:

java.lang.NullPointerException
    at com.sun.javaws.JnlpxArgs.execProgram(Unknown Source)
    at com.sun.javaws.Launcher.relaunch(Unknown Source)
    at com.sun.javaws.Launcher.prepareResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.launch(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).

我在我的电脑上安装了jdk 1.7,但是JRE lib中的一些jar文件丢失或损坏。我重新安装了JRE并解决了问题。我建议找出jnlp文件中未被识别的jar文件并替换它们,看看是否能解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接