развертывание приложения javafx 1.3 с помощью swing.filechooser

У меня есть приложение 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>

Я что-то пропустил? я должен ввести файл политики в банку ?? я совсем потерялся

Заранее большое спасибо за любую помощь.


person Ana    schedule 15.05.2012    source источник


Ответы (2)


Попробуйте добавить следующий раздел в ваш файл jnlp:

<security>
  <all-permissions/>
</security>
person Sergey Grinev    schedule 15.05.2012
comment
Спасибо большое!! Я работал. Но теперь у меня есть другая проблема: Исключение в потоке AWT-EventQueue-0 java.lang.NoClassDefFoundError: com/sun/javafx/runtime/eula/Eula в java.lang.ClassLoader.defineClass1(Native Method) в java.lang .ClassLoader.defineClassCond(ClassLoader.java:631) в java.lang.ClassLoader.defineClass(ClassLoader.java:615) в java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)... Есть идеи? - person Ana; 15.05.2012
comment
похоже, у вас не установлена ​​среда выполнения JavaFX 1.3. Работает ли какое-либо приложение JavaFX 1.3 через jnlp на вашем компьютере? - person Sergey Grinev; 15.05.2012
comment
Да! У меня есть другие приложения javaFX 1.3 от Oracle, которые работают хорошо, и если я попытаюсь запустить свою банку с помощью javafx -jar MatchTestCaseGenerator-2.0-jar-with-dependencies.jar, она будет работать хорошо. Еще одна вещь, которую я проверил, - это отсутствие дубликатов файлов в моей банке (особенно класса Eula.class), и у меня есть только этот класс по указанному пути (com/sun/javafx/runtime/eula/Eula). Итак... я не знаю, что происходит и что мне делать дальше... - person Ana; 16.05.2012
comment
к сожалению, javafx 1.3 немного устарел, поэтому сейчас я не могу дать вам точный совет. Вы можете попробовать взять работающее приложение FX1.3 с jnlp и заменить его jar своим (и соответствующим образом обновить jnlp). - person Sergey Grinev; 16.05.2012
comment
Да, я уже пробовал, но я думаю, что у меня должно быть что-то не так в банке, потому что это решение тоже не работает. Спасибо, в любом случае. Если я найду окончательное решение, я опубликую его. - person Ana; 16.05.2012
comment
Ну, наконец, я понял. Это была проблема файла jar. У него были некоторые классы javafx, и этого не должно быть. Я удалил их все, кроме Main.class, и это сработало! Спасибо еще раз за помощь. - person Ana; 18.05.2012
comment
Поздравляем, вы можете обновить свой вопрос или добавить эту информацию в качестве еще одного ответа, чтобы помочь кому-то с похожей проблемой. - person Sergey Grinev; 18.05.2012

Окончательное решение состояло в том, чтобы удалить все папки, содержащие классы javafx, кроме класса Main.

При этом заработало без проблем!!

person Ana    schedule 05.06.2012