JavaFX デプロイメント ガイドを正しく読めば、「アプリケーションが昇格された特権を必要としない...」限り、署名されていないアプリケーションをデプロイできるはずです。アプリケーションを次のコードに減らしました。
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();
}
}
(NetBeans によって作成された) jar ファイルをダブルクリックしても、何も起こりません。html または jnlp ファイル (これも NetBeans によって作成されます) を介して起動しようとすると、セキュリティ例外が発生します。
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "javafx.debug" "read")
完全なスタック トレースを以下に示します。
最新の更新プログラムをすべて適用して Windows 7 を実行しています。最新バージョンの JavaFX を搭載した最新バージョンの NetBeans (7.1.1) をダウンロードしました。JavaFX サンプルをダウンロードしましたが、問題なく動作します。(ご参考までに、アプリケーションの自己署名を試みたところ、「ava.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: 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