- PR -

アプレットにおける同一フォルダ内のファイルの読み込み

1
投稿者投稿内容
Face
常連さん
会議室デビュー日: 2003/06/22
投稿数: 43
投稿日時: 2003-11-04 18:36
お忙しい中申し訳ありません。
助言の方をいただきたいと思い書き込ませていただきました。

現在、アプレットの学習をしており、
アプレットでファイルを読み込んでその内容を表示させようと
しているのですが下記のエラーが表示されてしまいます。


((エラー内容))
java.security.AccessControlException:access denied(java.io.FilePermision test.html read)

このような例に対していろいろと調べてみましたが、
アプレットがクライアント側のファイルにアクセスする際には
いろいろなセキュリティの制限があり、署名などが必要ということが
わかったのですが、私の今回行おうとしているのは
アプレットのクラスファイルの置いてあるディレクトリと
同じディレクトリ内にあるファイルを読み込もうとしていて、
一部のサイトでは「クラスファイルと同一ディレクトリ内なら問題はない」
とかかれていました。

具体的には下記のような状況です。

((サーバー側のディレクトリ))
アプレットのクラスファイル
アプレットタグの書いたHTMLファイル(applet.html)
読み込みたいHTMLファイル(test.html)

上記のようなディレクトリになっており、アプレットのクラスファイルの
中で下記のように書き込んでいます。

try {
fin = new BufferedReader(new InputStreamReader(new FileInputStream("test.html"),"MS932"));
} catch (Exception e) {
e.printStackTrace();
}

そしてブラウザでapplet.htmlにアクセスしてみてもアプレット自体は
しっかりと動作するのですがファイルは読み込めません。

ローカルのファイルを読み込む際の情報はいくつか見つけることができたのですが
このように同一ディレクトリ内では「読み込める」といった情報が
2つほどしか見つからず解決できませんでした。

是非助言をよろしくお願いいたします。
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-11-04 19:38
署名無しアプレットで使えるのはリモートファイルなので、下記のようにします。
コード:

URL url = new URL(getCodeBase(), "test.html");
InputStream fin = url.openConnection().getInputStream();



[ メッセージ編集済み 編集者: Keisuke 編集日時 2003-11-04 19:39 ]
Face
常連さん
会議室デビュー日: 2003/06/22
投稿数: 43
投稿日時: 2003-11-04 21:47
kesukeさん、ありがとうございました。

助言していただいたとおりに書き直すとうまく読み込む事ができました。
これで続きを作っていくことができます。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)