使用swing.filechooser部署javafx 1.3应用程序

使用swing.filechooser部署javafx 1.3应用程序,javafx,jnlp,java-web-start,Javafx,Jnlp,Java Web Start,我有一个Java应用程序,我在上面集成了JavaFX1.3。我花了三天多的时间试图将其部署为一个Web Start应用程序,但这是不可能的 我在控制台上运行了一个jar(javafx-jar-MatchTestCaseGenerator-2.0-jar-with-dependencies.jar),但当我尝试执行jnlp时,出现了以下错误: java.security.AccessControlException: access denied (java.util.PropertyPermiss

我有一个Java应用程序,我在上面集成了JavaFX1.3。我花了三天多的时间试图将其部署为一个Web Start应用程序,但这是不可能的

我在控制台上运行了一个jar(
javafx-jar-MatchTestCaseGenerator-2.0-jar-with-dependencies.jar
),但当我尝试执行jnlp时,出现了以下错误:

java.security.AccessControlException: access denied (java.util.PropertyPermission user.home read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
at java.lang.System.getProperty(System.java:667)
at sun.awt.shell.ShellFolderManager.get(ShellFolderManager.java:57)
at sun.awt.shell.ShellFolder.get(ShellFolder.java:227)
at javax.swing.filechooser.FileSystemView.getDefaultDirectory(FileSystemView.java:404)
at javax.swing.JFileChooser.setCurrentDirectory(JFileChooser.java:552)
at javax.swing.JFileChooser.<init>(JFileChooser.java:334)
at javax.swing.JFileChooser.<init>(JFileChooser.java:286) ...
java.security.AccessControlException:拒绝访问(java.util.PropertyPermission user.home read)
位于java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
在java.security.AccessController.checkPermission(AccessController.java:546)
位于java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
位于java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
位于java.lang.System.getProperty(System.java:667)
位于sun.awt.shell.ShellFolderManager.get(ShellFolderManager.java:57)
位于sun.awt.shell.ShellFolder.get(ShellFolder.java:227)
位于javax.swing.filechooser.FileSystemView.getDefaultDirectory(FileSystemView.java:404)
位于javax.swing.JFileChooser.setCurrentDirectory(JFileChooser.java:552)
位于javax.swing.JFileChooser。(JFileChooser.java:334)
在javax.swing.JFileChooser(JFileChooser.java:286)。。。
我对jar文件进行了签名和验证,我的JNLP文件如下:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="file:/Users/ana/Projects/Java/workspace/Match Test Case Generator 2.0/target" href="MatchTestCaseGenerator.jnlp">
 <information>
    <title>Match Test Case Generator</title>
    <vendor>KV </vendor>
    <homepage href=""/>
    <description>some_description</description>
    <offline-allowed/>
    <shortcut>
        <desktop/>
    </shortcut>
  </information>
  <resources>
    <j2se version="1.6+"/>
      <extension name="JavaFX Runtime" href="http://dl.javafx.com/1.3/javafx-rt.jnlp"/>
    <jar href="MatchTestCaseGenerator-2.0-jar-with-dependencies.jar" main="true"/>
  </resources>
  <application-desc main-class="com.sun.javafx.runtime.main.Main" progress-class="com.javafx.progressbar.ProgressManager">
     <argument>MainJavaFXScript=com.knowledgevalues.mtcg.javafx.MainFx</argument>
  </application-desc>
</jnlp>

匹配测试用例生成器
千伏
一些描述
MainJavaFXScript=com.knowledgevalues.mtcg.javafx.MainFx
我错过什么了吗?我应该在jar中引入策略文件吗??我完全迷路了


非常感谢您的帮助。

尝试将下一节添加到您的jnlp文件中:

<security>
  <all-permissions/>
</security>

尝试将下一节添加到jnlp文件中:

<security>
  <all-permissions/>
</security>

最终的解决方案是删除除主类之外的所有包含javafx类的文件夹


有了这些,它就可以毫无问题地工作了

最终的解决方案是删除除主类之外的所有包含javafx类的文件夹


有了这些,它就可以毫无问题地工作了

非常感谢!!我工作过。但现在,我遇到了另一个问题:java.lang.NoClassDefFoundError:com/sun/javafx/runtime/eula/eula位于java.lang.ClassLoader.defineClass1(本机方法)位于java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)位于java.lang.ClassLoader.defineClass(ClassLoader.java:615)的线程“AWT-EventQueue-0”中的异常在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)中。。。你知道吗?看起来你没有安装JavaFX1.3运行时。是否有任何JavaFX1.3应用程序在您的机器上通过jnlp工作?是的!我还有其他来自Oracle的JavaFX1.3应用程序运行得很好,如果我尝试使用“javaFX-jarmatchTestCaseGenerator-2.0-jar-with-dependencies.jar”运行jar,它运行得很好。我检查过的另一件事是在我的jar中没有重复的文件(特别是类Eula.class),并且在指定的路径(com/sun/javafx/runtime/Eula/Eula)中只有这个类。所以我不知道发生了什么,也不知道下一步我能做什么……不幸的是JavaFX1.3有点过时,所以我现在不能给你确切的建议。你可以尝试使用jnlp使用FX1.3应用程序,并用你的jar替换它(并相应地更新jnlp)。是的,我已经尝试过了,但我认为我的jar中应该有问题,因为这个解决方案也不起作用。无论如何,谢谢你。如果我能找到最终的解决方案,我会发布它。非常感谢!!我工作过。但现在,我遇到了另一个问题:java.lang.NoClassDefFoundError:com/sun/javafx/runtime/eula/eula位于java.lang.ClassLoader.defineClass1(本机方法)位于java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)位于java.lang.ClassLoader.defineClass(ClassLoader.java:615)的线程“AWT-EventQueue-0”中的异常在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)中。。。你知道吗?看起来你没有安装JavaFX1.3运行时。是否有任何JavaFX1.3应用程序在您的机器上通过jnlp工作?是的!我还有其他来自Oracle的JavaFX1.3应用程序运行得很好,如果我尝试使用“javaFX-jarmatchTestCaseGenerator-2.0-jar-with-dependencies.jar”运行jar,它运行得很好。我检查过的另一件事是在我的jar中没有重复的文件(特别是类Eula.class),并且在指定的路径(com/sun/javafx/runtime/Eula/Eula)中只有这个类。所以我不知道发生了什么,也不知道下一步我能做什么……不幸的是JavaFX1.3有点过时,所以我现在不能给你确切的建议。你可以尝试使用jnlp使用FX1.3应用程序,并用你的jar替换它(并相应地更新jnlp)。是的,我已经尝试过了,但我认为我的jar中应该有问题,因为这个解决方案也不起作用。无论如何,谢谢你。如果我能找到最终的解决方案,我会发布它。