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

时间:2012-05-15 11:31:39

标签: javafx jnlp java-web-start

我有一个Java应用程序,并在其上集成了 JavaFX 1.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) ...

我已经签署并验证了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>

我错过了什么吗?我应该在jar中引入一个策略文件吗?我完全失去了

非常感谢您提前寻求帮助。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

有了它,它没有问题!!