JavaFXでイメージをロードすると、JNLPとしてデプロイされたときにAccessControlExceptionが発生します。

StackOverflow https://stackoverflow.com//questions/23035165

質問

非常に単純なJavaFXアプリケーションを持っています。画像を描画する必要があります。「リソース」ディレクトリにPNGとして保持する必要があります。 私はこのようにそれを初期化します:

private final static Image customerImage;
static {
    Path imageLink = Paths.get("resources", "homeIcon.png");
    customerImage = new Image("file:"+imageLink.toString(),true);
}
.

私がIDEからまっすぐ走るとうまくいく。

しかし、アプリケーションをJavaFXパッケージとして展開して結果のJNLPを実行してから、イメージコンストラクタは具体的にはAccessControlExceptionをスローします。

java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.dir" "read")
.

どちらが正しく理解しても、ファイルを検索するためのアクセス権がないことを意味します。どうやってこれを解決するべきですか?また、.jnplとしてデプロイされたときにディレクトリを調べることも奇妙なようです.pngファイルを他の場所に配置する必要がありますか?

役に立ちましたか?

解決

customerImage = new Image("file:"+imageLink.toString(),true);
.

それはおそらくURLを形成していない。 それは以下のべきです:

customerImage = new Image(imageLink.toURI().toURL().toString(),true);
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top