2011-07-17 6 views
-1

私は、アプリケーションに基づいたJAppletを持っています。すべてのデータを含むテキストベースのファイルを読む必要があります。だから私はそれをJarファイルに貼り付け、AppletViewerですべてが幸せになった。Jarファイル内のJAppletは、Jarファイルに含まれるhtmlからのみ実行できます。

残念ながら、すべてがブラウザの陸上で幸せではありません。

私は瓶にないhtmlページからブラウザでアプレットを実行しようとすると、その後、私は古き良き取得:java.security.AccessControlException:アクセスが拒否されました(java.io.FilePermission

を(ファイルシステム上のjarファイルの場所と!リソースアドレス)

しかし、jarファイルをwinzipのようなzip extractor/viewerで開き、アプレットを起動するページを開きますjarファイル内にある場合)、それはうまく動作します。予想通り、同じホストを持つリソースにしかアクセスできません。この場合、jarファイル自体が表示されます。

だから私の質問はWTFですか? jarファイル内のhtmlファイルをブラウザから開くことはできますか?iframe内であっても、何かが大丈夫です。

または、アプレットをjarファイルの外にあるhtmlページから呼び出すことはできますか?今はJNLPを使用していません。できるだけ早くプロトタイプアプレットを作成したいからです。

<applet code = 'CatalogApplet' 
archive = 'ContactCatalog.jar', 
width = 1000, 
height = 800 /> 

アプレットへのHTML呼び出しのエンティティです。

本当に署名する必要がないので、署名しません。私はちょうど瓶に戻って電話したいと思っています。

+0

あなたの質問は意味をなさない。 HTMLファイルはJARファイルについてブラウザに指示しますが、他の方法ではありません。アプレットからJARファイル内の他の*リソースにアクセスできないことを意味しますか?あなたの質問を明確にしてください。 – EJP

+0

私は、Javaコードからではなく、ブラウザからjarファイル内からhtmlを実行する方法が必要です。私はなぜか分からないけど、nullでないAppletContextを得ることができないので、テキストや画像をアプレットに読み込むために奇妙なことに頼らなければなりません。これはちょうど非常に奇妙な仕事の周りに起こります。 –

+0

これは意味がありません。ブラウザは、JAR内のHTMLファイルを見ることはできません。できることは、JARにあるアプレットを実行することだけです。 'Javaコードがまったくありません'の場合は、アプレットが存在しないため、AppletContextもありません。これはまだ意味をなさない。 – EJP

答えて

1

ファイルは、FileInputStreamではなく、URLを介してアクセスする必要があります。これを使用してURLを取得します。

URL urlToText = this.getClass().getResource("path/to/the.html"); 

これはサンドボックスアプレットで動作します。

+0

ああ、私はJavaコードからhtmlを呼び出す方法を望んでいませんでした。ブラウザからjarファイル内のhtmlを呼び出す方法が必要でした。 –

+0

私はまだあなたの説明が泥のようにはっきりしているのを発見します。おそらくあなたが何をやろうとしているのかを説明した場合、それはより明確になります。 –

0

クリーンな方法は: あなたの ".class"ファイルをjarファイルにパッケージします。アプレットタグ内のあなたのjarを参照するjarファイルの外にhtmlファイルがあります。アプレットがユーザーファイルシステムにアクセスする必要がある場合は、アプレットjarに署名することが適切です。 http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html

+0

それらはjarファイルにパッケージ化されていますが、残念ながらjarファイルの外にhtmlファイルがあると、jarファイル内のリソースをコードにロードできなくなります。 (あなたはコードが瓶に入っています。) –