我尝试将JavaFX应用程序意图部署到浏览器中。
我已经完成了以下步骤:
1。 javapackager -createjar -outdir编译-outfile myapp -appclass MyApp -srcdir bin 1. javapackager -deploy -outdir已部署-outfile outfile -width 400 -height 400 -name AppName -appclass MyApp -srcdir已编译
然后我尝试运行创建的JNLP文件但我在下面遇到了例外:
java.lang.ClassNotFoundException: MyApp
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.JNLP2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
所以我试图通过以下步骤解决这个问题:
A)我试图签署jar文件。
B)我试图在JNPL文件中指明这个jar是主要的;
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href=".\myapp.jar" size="3229" download="null" main="true"/>
</resources>
C)当我看到一些解决方案时,我已将javapacker的paramater appclass更改为application.MyApp。
D)我再次尝试了步骤1-3。
E)在这两种情况下,我都在签名之前尝试将jar标记为main。
每种情况下的例外情况都是一样的。
如果我编译jar经典方式 - jarsigner myapp.jar * .class allLastingFiles - app通常是runnig。如果签名,这个jar通常也可以使用。
整个JNLP看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="myapp.jnlp">
<information>
<title>AppName</title>
<vendor>Unknown</vendor>
<description>AppName</description>
<offline-allowed/>
</information>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href=".\myapp.jar" size="3229" download="null" />
</resources>
<jfx:javafx-desc width="400" height="400" main-class="MyApp" name="AppName" />
<update check="background"/>
</jnlp>
我尝试过谷歌,但我不确定要搜索什么。
答案 0 :(得分:0)
问题解决了。我有未知原因打包在jar源文件而不是二进制文件。