1

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

我有一个使用控制台(javafx -jar MatchTestCaseGenerator-2.0-jar-with-dependencies.jar)运行的 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 中引入一个策略文件吗?我完全迷路了

非常感谢您的任何帮助。

4

2 回答 2

1

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

<security>
  <all-permissions/>
</security>
于 2012-05-15T14:38:33.513 回答
0

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

有了它,它没有问题!

于 2012-06-05T08:36:50.953 回答