• 締切済み

AccessControlException

自宅PC(Windows7)でJavaアプレットを作成し、HTMLファイルから実行したところ、タイトルのエラーが表示されました。getImage()でPCのハードデスク内の画像ファイルを読み込み表示させる、簡単なプログラムです。インターネットで調べたところ「java appletはセキュリティ上の制限でユーザのローカルファイルにアクセスできません。」だそうです。 C:\Program Files (x86)\Java\jre7\lib\security\java.policy を以下の様に修正しましたが、駄目でした。 grant { permission java.security.AllPermission; }; その際、元のファイル名を.java.policy_save に変更して、同じフォルダに保存したつもりですが、みつかりません。(したがって、元に戻せない。) アプレットでPC内の画像ファイルを表示する方法、および、java.policy を元に戻す方法をご存知の方、ご教授下さい。ちなみに当方、趣味でJavaを勉強しており、ITの難しい事はわかりません。 宜しくお願いします。

  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

  • KSOH
  • ベストアンサー率93% (29/31)
回答No.1

PC内の画像ファイルとおっしゃっているのはアプレットのコードベースとは無関係の任意のファイルという意味だと思いますがアプレットはそういう目的には使わないと思います。 アプレットが対象とするリソースはアプレット自身が属しているサイトやjar内のリソースだけとするのが普通の考え方だと思います。ブラウザ上で動作するアプレットから任意のローカルリソースをアクセスできてしまうというのはセキュリティー上できてよいことではないと思いますので。 PCの任意ローカルリソースにアクセスしたいのであればアプレットを選択するのではなく単純にスタンドアローンアプリケーションにすべきだと思います。 ちなみに環境をこわしてしまったのならもう一度JREをインストールしてはいかがでしょうか。それが一番単純&確実だと思います。時間もそれほどかからないですし。

htagun654
質問者

お礼

ありがとうございました。 仕方ないですね。

関連するQ&A

  • 【Java】画像表示が出来ない!

    Java初心者です。 Eclipseを使って、Javaアプレットでjpeg画像を表示させようとしたのですが、上手くいきません。表示したい画像をインポートして、このようなコードを書きました。 import java.applet.Applet; import java.awt.*; /* <applet code="クラス名.class" width="497" height="600"> <param name="img" value="img/test.jpg"> </applet>*/ public class クラス名 extends Applet { Image img; public void init() { img = getImage(getDocumentBase() , getParameter("/test.jpg")); } public void paint(Graphics g) { g.drawImage(img , 0 , 0 , this); } } Javaアプレットで実行しても、アプレットは真っ白なままです。GIF画像でも試してみましたが、同じく失敗でした。他のJavaアプレットのプログラム(図形を表示したり)は成功したので、私のパソコンのJavaは問題ないと思います。回答よろしくお願いします。

    • ベストアンサー
    • Java
  • アプレットとテキストファイル

    Java初心者です. appletでゲームのようなものを作ろうと思い, テキストファイル(*.txt)から文章を読み込んで 表示するようなプログラムを書きました. eclipseのアプレットビューアではちゃんと表示されるのですが, 自分でhtmlを書いてブラウザで表示させようとすると, このテキストファイルが読み込まれないのか,以下のようなエラーが ブラウザの下に出ました. java.security.AccessControlException: access denied(java.io.FilePermission ./res/aaa.txt read). これはどういうことなんでしょうか. eclipseのアプレットビューアを使ったら, プロジェクトフォルダに"java.policy.applet"というものができていたので, これをうまく使えたらいいのかとも思うんですが, どうもよくわかりません. ご回答お待ちしています. ちなみにOSはmac OSXで, フォルダの構成は, プロジェクトフォルダ  ー/src/*.java,*.class  ー/res/aaa.txt です.

  • サンドボックス アプレットとデフォルトの Policyの設定

     SUN製Javaデフォルトの Policyの設定だとアプレットでのアクセス権はどうなりますか?  デフォルトの各アプレットのサンドボックスのPC(WindowsXP Linux)上のパスを教えてください。  ローカルファイルへのそれは禁止としてはダウンロード元とは異なるIPにへのアクセスついて特に知りたいです。  jarアプレットやclassアプレットファイルのダウンロード元とは違うIPへアクセスできないのか  それともjarアプレットやclassアプレットをAPPLETタグなどで読み込むhtmファイルのダウンロード元とは異なるIPへのアクセスができないのか (もちろん日本ベリサインなどの証明書があればユーザに許可を求めることができることは存じ上げております。) http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/security/PolicyFiles.html ↑ここに載せた解説ではよく分かりません。 ポリシーを変更するための (たとえば一例として「同一Javaアプレットのサンドボックス内以外のmyローカルPCへのアクセスは禁止するがダウンロード元以外のIPのPC内の同一Javaアプレットのサンドボックスへのアクセスは証明書がなくても信頼済みとする」のような) もっと分かりやすく日本語で解説しているWebサイトってございませんでしょうか? アプレットでP2Pのようなことがしたいのです。

    • ベストアンサー
    • Java
  • アプレットを実行すると、×が表示され、Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。

    Java JDK5をインストールしました。 C:\Program Files\Javaに jdk1.5.0_06 jre1.5.0_06 がインストールされています。 コンパイルは、PATHにC:\Program Files\Java\jdk1.5.0_06\binを追加すれば、できるようになりました。 Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。 // 図形の表示 import java.applet.*; import java.awt.*; public class Test_0002 extends Applet{ public void paint(Graphics g){ g.fillOval(0, 0, 200, 100); } }

    • ベストアンサー
    • Java
  • さあ、表示だ!ってあれ~?

    import java.awt.*; import java.applet.*; public class S1 extends Applet {       Image img;       public void init()       {             img=getImage(getCodeBase(),"image/sample.jpeg");       }       public void paint(Graphics g){             g.drawImage(img,50,50,this);             g.drawString("Hello!",10, 10);       } } というプログラムでアプレットビューアを呼び出すことに成功! がしかし、Hello!という文字は表示できたものの画像が処理されません。。; 他にもColorやrepaint()を用いて背景に色を設定したり、変えたりすることもできました! でも、何回やっても画像が表示されません。 原因を教えてもらうとありがたいです。 ちなみに、関係のありそうなファイル状況を説明します↓ Dドライブ━プロジェクトファイル┳imageファイル━sample.jpeg                      ┣srcファイル━S1.java                    ┗binファイル┳S1.class                            ┗java.policy.applet

    • ベストアンサー
    • Java
  • Eclipseを用いたJARファイル作成について

    Eclipseを用いてjavaのプログラムをしているのですが アプレットのプログラム"のみ"がJARファイルにエクスポートできずに困っております。 [プロジェクト]を右クリック→[エクスポート]→[JARファイル]に設定するところまでは良いのですが 「JARマニフェスト仕様」というページの、「アプリケーションのエントリー・ポイントのクラスを指定」という項目で、メインクラスを参照しても アプレットのプログラムのクラス"のみ"が表示されていないのでエクスポートできません。コンソールのプログラムのクラスは表示されているので おそらく、アプレットにはmainメソッドを用いていないので表示されないのだと思うのですが・・・。 mainメソッドがないプログラムの場合はどうすれば良いのでしょうか・・・? 自分なりに、↓など調べてみたのですがどこがいけないのかわかりません。 http://mailsrv.nara-edu.ac.jp/~asait/java/applet/applet.htm http://sunjava.seesaa.net/article/57546363.html どこをどうすればこの場合、EclipseでJARファイルが作成できるのか、詳しく教えていただければ助かります。 一応、アプレットは↓の簡単なプログラムを試してみました。実行は出来ます。 import java.applet.Applet; import java.awt.Graphics; public class Sample extends Applet { public void paint(Graphics g) { g.drawString("こんにちは",10,10); } }

  • JAVAアプレットの仕組みについて

    HTMLに埋め込まれたJAVAアプレットが画像を表示するように記述されている場合、JAVAアプレットは画像をサーバーからダウンロードして表示しているんですよね? JAVAアプレットがサーバーからファイルをダウンロードできるように、 JAVAアプレットがサーバー上にファイルを作り出すこともできるのですか? 今、計算プログラムをダウンロードで配布して、実行して得られた計算結果を投稿してもらう仕組みを作っているのですが、 JAVAアプレットにサーバー上のファイルを操作する能力があるのなら、JAVAアプレットを読み込み実行するだけで配布と投稿の作業が一まとめにできてしまうと思いました。 JAVAアプレットはサーバー上のファイルをどこまで操作できるのでしょうか?

    • ベストアンサー
    • Java
  • 画像を表示させるプログラム

    こんばんわ。 現在、Javaで画像を表示させるアプレットを作っているのですが、画像が表示されません。 書いたソースは以下です。 import java.applet.Applet; import java.awt.*; /* <applet code="Panel.class" width="497" height="600"> </applet> */ public class Panel extends Applet { Image data; public void init() { data = getImage(getDocumentBase(),"2-1.gif"); } public void paint(Graphics g) { g.drawImage(data, 0, 0, data.getWidth(this), data.getHeight(this), this); } } 2-1.gifという画像ファイルを表示させたいと思っています。画像ファイルはソースファイルと同じディレクトリにあります。appletviewerで実行しているのですが画像がさっぱり表示されません。 SDKのバージョンは1.5を使っています。 お手数おかけしますが、ご教授の程よろしくおねがいします。

    • ベストアンサー
    • Java
  • IEでAPPLETが実行できない

    PCを新しくして(XP homeからXP proffesional ともにservicepack1) JAVA Appletのページを表示したところ、 JAVA appletが見れなくなってしまいました。 JVM(JRE)はJava2SDKをインストールする時に、 インストールされています。 Javaのapplicationは動作するにですが、appletが 無理です。IEのセキュリティ設定はJava OKにしまし が、昔あった、詳細設定タブの、JVMを使用するや、 MicrosoftVMを使用するが、無くなっています。 分かる人、お願いします。

    • ベストアンサー
    • Java
  • NetBeansによる画像の表示

    現在、「やさしいJava」(SOFTBANK Publishing)という解説書のプログラムをNetBeans6.5.1で実行しながら勉強しています。 package sa16_03; import java.applet.Applet; import java.awt.Graphics; import java.awt.Image; public class Applet16_03 extends Applet { Image imgDuke; @Override public void init() { imgDuke = getImage(getDocumentBase(), "DukeWithHelmet.bmp"); } @Override public void paint(Graphics g) { g.drawImage(imgDuke, 30, 40, this); } } 上記のソースはDukeWithHelmet.bmpという画像ファイルを表示させる為のプログラムなのですが、アプレットビューア及びHTMLには何も表示されませんでした。 http://okwave.jp/qa4366603.htmlの回答例に従って、paintメソッド内に g.drawString( getDocumentBase().toString(), 10, 50 ); を付与して再度アプレットビューアを起動したら、 file:/C:/NetBeansProjects/SOFTBANK/Easy/Lesson16/Sample16/build/Applet16_03.html と表示されました。 getDocumentBase()メソッドはアプレットを起動するHTMLファイルの場所をURLで返すので、DukeWithHelmet.bmpもApplet16_03.htmlと同じ場所に置いています。 尚、関係がありそうなファイル構造は以下のようになります。 C:\NetBeansProjects\SOFTBANK\Easy\Lesson16\Sample16 までは一本道で、Sample16以下は ┳build┳classes━sa16_03━Applet16_03.class ┃    ┣DukeWithHelmet.bmp ┃    ┗Applet16_03.html ┗src ━sa16_03━Applet16_03.java というファイル構造になっています。 画像が表示されない原因の回答を是非お教え願います。

    • ベストアンサー
    • Java

専門家に質問してみよう