如果我正確地閱讀了JavaFX部署指南,我應該能夠部署未簽名的應用程序,只要「該應用程序需要[沒有]提升的權限......」。我在我的應用程序已經減少到下面的代碼位:通過JNLP啓動程序會產生安全異常
package fxadhoc;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class FXAdHoc
extends Application
{
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
System.out.println("launch");
launch(args);
}
@Override
public void start(Stage stage) throws Exception
{
Pane root = new Pane();
root.getChildren().add(new Label("Testing"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
}
當我雙擊jar文件(通過NetBeans中創建)什麼也不會發生。當我嘗試通過HTML或JNLP文件(也由NetBeans中創建)推出我得到一個安全異常:
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "javafx.debug" "read")
完整的堆棧跟蹤如下。
我正在運行Windows 7並應用了所有最新更新。我已經下載了最新版本的NetBeans(7.1.1),它配備了最新版本的JavaFX。我已經下載了JavaFX示例,並且它們運行良好。 (如果您好奇,我嘗試自簽名應用程序並得到異常「ava.lang.RuntimeException:java.lang.UnsatisfiedLinkError:無法加載庫:C:\ Users \ jack \ Documents \ NetBeansProjects \ FXAdHoc \ DIST \ BIN \ mat.dll「)。當我在Linux上構建時(同樣使用NetBeans 7.1.1),我會遇到同樣的異常。
有誰能告訴我我錯過了什麼嗎?謝謝...
爲異常的完整堆棧跟蹤:
java.lang.RuntimeException: Application launch error
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:104)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:140)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:27)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:97)
... 1 more
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "javafx.debug" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at com.sun.javafx.runtime.SystemProperties.getProperty(SystemProperties.java:178)
at com.sun.javafx.runtime.SystemProperties$1.run(SystemProperties.java:67)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.runtime.SystemProperties.<clinit>(SystemProperties.java:62)
... 4 more
嘗試後[JavaFX的開發者預覽版(http://www.oracle.com/technetwork/java/javafx/downloads/devpreview-1429449.html)和提版本和構建你試過數。嘗試以jnlp的身份運行[Getting Started NetBeans Project](http://docs.oracle.com/javafx/2.0/get_started/ColorfulCircles.zip)並查看是否有效。 – jewelsea 2012-04-23 21:45:59