java
1try{ 2 java.io.File file = new java.io.File("../Image/nc74842.png"); //ファイルを開く 3 m_bi = javax.imageio.ImageIO.read(file); //画像全体を読み込む 4 }catch(java.io.IOException e){ 5 System.out.println("画像が見つかりません NoImage"); 6 }
画像の参照のデフォルトがbinになっているのですが、一つ上の階層にあるImageファイルの中の画像を呼び出したく、../Image/nc74842.png
このように書くと以下の様なエラーが出ます。binファイルの中にImageフォルダを作りその中に画像を入れて呼び出すのならば問題なく動くんですが・・・
以下に図でディレクトリ構造を書いてみました。
プログラム
├bin
│ ├Main.class
│ └Main.html
├Image
│ └nc74842.png
└src
java.security.AccessControlException: access denied ("java.io.FilePermission" "..\Image\nc74842.png" "read")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.security.AccessController.checkPermission(AccessController.java:884)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
at java.io.File.canRead(File.java:763)
at javax.imageio.ImageIO.read(ImageIO.java:1300)
at MyPanel.<init>(MyPanel.java:12)
at Main.init(Main.java:5)
at sun.applet.AppletPanel.run(AppletPanel.java:434)
at java.lang.Thread.run(Thread.java:745)
エラーの現状をものすごく簡単にいうと、../をつけずに実行すると「画像がみつかりません」のエラーメッセージが出るんですが、../をつけるとアプレットビューアーが真っ白けの画面になり、下にアプレットが初期化されていませんと表示します。わけがわからないです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。