适当的浏览器嵌入JavaFX应用程序部署是什么样的?

时间:2016-05-04 05:56:03

标签: java javafx jar java-web-start jnlp

我尝试将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>

我尝试过谷歌,但我不确定要搜索什么。

1 个答案:

答案 0 :(得分:0)

问题解决了。我有未知原因打包在jar源文件而不是二进制文件。