Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Web Start上启动Glion应用程序时出现异常_Java_Security_Applet_Gluon_Gluon Desktop - Fatal编程技术网

Java 在Web Start上启动Glion应用程序时出现异常

Java 在Web Start上启动Glion应用程序时出现异常,java,security,applet,gluon,gluon-desktop,Java,Security,Applet,Gluon,Gluon Desktop,我在通过webstart启动Glion应用程序时遇到以下异常。。。我知道这和胶子粒子没有直接关系。。。这似乎更像是罐子标志的问题。 例外情况: java.lang.RuntimeException: java.lang.ExceptionInInitializerError at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.instantiateApplet(Unknown Source) at sun.plugin2.applet.Pl

我在通过webstart启动Glion应用程序时遇到以下异常。。。我知道这和胶子粒子没有直接关系。。。这似乎更像是罐子标志的问题。 例外情况:

java.lang.RuntimeException: java.lang.ExceptionInInitializerError
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.instantiateApplet(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)
Caused by: java.lang.ExceptionInInitializerError
at com.gluonhq.particle.application.Particle.<init>(Particle.java:170)
at com.gluonhq.particle.application.ParticleApplication.<init>(ParticleApplication.java:89)
at mx.gob.scjn.inventario.InventarioAJ.<init>(InventarioAJ.java:22)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Toolkit not initialized
    at com.sun.javafx.application.PlatformImpl.runLater(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.runLater(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.setPlatformUserAgentStylesheet(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.setDefaultPlatformUserAgentStylesheet(Unknown Source)
    at javafx.scene.control.Control.<clinit>(Unknown Source)
... 28 more
然后将其导出:

keytool -export -alias CLS -file rsatest.cer -keystore mykeyStore
我导入java控制面板,并使用以下命令对jar进行签名:

jarsigner -keystore mykeyStore InventarioAJ.jar CLS
很明显我错过了一些东西。。。有线索吗? 问候语
在得到答案后,我得到了一个“重复的问题”标记。。。但正确的答案(正如我所想)不仅仅是安全/签名部分。。。事实上,答案中真正重要的部分与以下事实有关:应用程序类不能转换为applet,这需要对JNLP文件进行另一次更改。

没错,Java8在JavaFX上引入了一些更改(我确实认为这些更改是在以后的更新中进行的,但这不是重点)。。如今,JavaFX应用程序无法像小程序一样运行,因此JNLP文件必须看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://localhost/inventarioaj/" href="InventarioAJ.jnlp">
 <resources>
    <j2se version="1.8+" href=
       "http://java.sun.com/products/autodl/j2se"/>
    <jar href="/inventarioaj/InventarioAJ.jar" main="true" />
    <jar href="lib/controlsfx-8.40.10.jar"/>
    <jar href="lib/javax.inject-1.jar"/>
    <jar href="lib/particle-1.1.0.jar"/>
    <jar href="lib/h2-1.4.191.jar"/>
    <jar href="lib/eclipselink.jar"/>
    <jar href="lib/javax.persistence_2.1.0.v201304241213.jar"/>
    <jar href="lib/org.eclipse.persistence.jpa.modelgen_2.5.2.v20140319-9ad6abd.jar"/>
    <jar href="lib/org.eclipse.persistence.jpars_2.5.2.v20140319-9ad6abd.jar"/>
 </resources>
 <security>
    <all-permissions/>
 </security>
 <application-desc name="Inventario de XXXX"
 main-class="mx.xxxxx.InventarioAJ"/>

因此,删除了“applet desc”标记,并将其替换为“application desc”标记,“security”标记应位于适当位置,以允许应用程序访问文件系统以及网络通信。 如果是这种情况(需要所有权限),则必须对所有JAR进行签名。
问候语

检查一下,看看是否有帮助谢谢Jose。。。这给了我一点启发。@JarrodRoberson我确实更新了问题,希望您能看到问题不一样。@JarrodRoberson如果您将某个内容标记为重复,而不是(如本例所示),您应该更改它。。。请仔细阅读问题,然后再将其标记为副本。
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://localhost/inventarioaj/" href="InventarioAJ.jnlp">
 <resources>
    <j2se version="1.8+" href=
       "http://java.sun.com/products/autodl/j2se"/>
    <jar href="/inventarioaj/InventarioAJ.jar" main="true" />
    <jar href="lib/controlsfx-8.40.10.jar"/>
    <jar href="lib/javax.inject-1.jar"/>
    <jar href="lib/particle-1.1.0.jar"/>
    <jar href="lib/h2-1.4.191.jar"/>
    <jar href="lib/eclipselink.jar"/>
    <jar href="lib/javax.persistence_2.1.0.v201304241213.jar"/>
    <jar href="lib/org.eclipse.persistence.jpa.modelgen_2.5.2.v20140319-9ad6abd.jar"/>
    <jar href="lib/org.eclipse.persistence.jpars_2.5.2.v20140319-9ad6abd.jar"/>
 </resources>
 <security>
    <all-permissions/>
 </security>
 <application-desc name="Inventario de XXXX"
 main-class="mx.xxxxx.InventarioAJ"/>