我尝试将我的应用程序打包为Web Start ZenJava plugin for Maven。
mvn -pl XXX com.zenjava:javafx-maven-plugin:web -DskipTests -DmainClass=XXX.Main -Dproject.organization.name=XXX -DkeystoreAlias=selfsigned -DkeyStorePassword=XXX -DallPermissions=true -DkeyStore=./keystore.jks
这会产生以下工件:
/lib
XXX-jfx.jar
XXX.html
XXX.jnlp
如果我从jar启动我的应用程序,一切都按预期工作,但如果我启动jnlp,我会得到一个NPE regarding the Location like the one in this topic。
我用来阅读所需资源的是
Thread.currentThread().getContextClassLoader().getResource("relative/path/from/package/root")
尝试了在链接主题中描述的加载它的所有不同方法,但没有成功。我错过了什么?工作罐是不是意味着我的课程加载是正确的?这也是JNLP的重要组成部分。
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="XXX-0.0.1.jnlp">
<information>
<title>Sample JavaFX Application</title>
<vendor>XXX</vendor>
<description>Sample JavaFX 2.0 application.</description>
<offline-allowed/>
</information>
<resources>
<jfx:javafx-runtime version="8.0+" href="http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp"/>
</resources>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="xxx-jfx.jar" size="44875" download="eager" />
<!-- Bunch of other jars here -->
</resources>
<applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="XXX-0.0.1" >
<param name="requiredFXVersion" value="8.0+"/>
</applet-desc>
<jfx:javafx-desc width="800" height="600" main-class="XXX.Main" name="XXX-0.0.1" />
<update check="background"/>
</jnlp>
如果您需要更多信息,请与我们联系。
提前致谢。