• ベストアンサー

Appletでjar内の画像ファイルを読み込む方法

Applet初心者なのですが、ブラウザにおいてApplet内に画像ファイルを読み込んで、表示しようと思っています。しかし、これはセキョリティに引っかかることはわかっております。しかし、jar内に画像ファイルを入れてしまい、これに対して読み込みを掛けることはセキョリティに違反しないのではないかと思うのですが、そのような方法で画像ファイルを読み込むことってできるのでしょうか? どうぞご教授ください。

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.2

 こんばんは、#1です。  いったんJarファイルのことは忘れましょう。  アプレットをJarファイル化していない場合を考えてみます。 アプレットのクラス : TestApplet.class 画像ファイル : yyy.jpg  が、Webサーバーの同じディレクトリにあるとします。  ブラウザがHTMLを読み込み、アプレットタグで指定してあるTestApplet.classを実行します。  その時、TestApplet.classから、まだ、サーバーにあるyyy.jpgを読み込むには、  ↓こうですね。 pubic void init() {   Image image = this.getImage(this.getCodeBase(), "yyy.jpg");   ・・・ }  実はアプレットをJar化したときも、まったく同じ扱いなのです。 「yyy.jpgはJarファイルの中に入っているのだから、もうクライアントに来ているじゃないか」  と、思うかもしれませんが、たぶん、アプレットをJar化しようが、すまいが、同じコードで動かなくてはいけないので、そうなっているのでしょう。

ikeday
質問者

お礼

できました!!本当にありがとうございました。 ちょっと行き詰まっていたので、本当に助かりました。

その他の回答 (1)

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんばんは。 >ブラウザにおいてApplet内に画像ファイルを読み込んで、 >表示しようと思っています。しかし、これはセキョリティに >引っかかることはわかっております。  クライアントのローカルハードディスクにある画像を読み込もうとすれば、そうですが、アプレットを置いているサーバーの画像を読むことなら、セキュリティーに違反しません。 >jar内に画像ファイルを入れてしまい、これに対して読み込みを >掛けることはセキョリティに違反しないのではないかと思うのです  できますよ。  もちろんセキュリティーにも違反しません。  普通にコードベースのディレクトリにあるものとしてAppletのgetImageメソッドから得ることができます。

ikeday
質問者

補足

PecoPlusさん、早速のご回答ありがとうございます。 さて、jarを作成し、その中にyyy.jpgを含めまして、サーバー(自宅サーバーです)におきました。画像を読み込むアプレットは; public void init(){ Image osImg = Toolkit.getDefaultToolkit().getImage( new String("./yyy.jpg"));.... といたしまして、更に、htmlファイルは; <BODY> <APPLET code="yyyApplet" archive="yyyy.jar" codebase="http://www.xxxx.jp/java/" width=640 height=480> Your browser does not support Java, so nothing is displayed. </APPLET> という部分を入れています。これをブラウザで実行したところ、サーバーは; java.security.AccessControlException: access denied (java.io.FilePermission yyy.jpg read) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:269) at java.security.AccessController.checkPermission(AccessController.java:401) at java.lang.SecurityManager.checkPermission(SecurityManager.java:524) at java.lang.SecurityManager.checkRead(SecurityManager.java:863)...... といったエラーをはいて、ブラウザに×マーク、Status Barには"yyyApplet notinited"というエラー表示が出ます。PecoPlusさんのご指摘で、読み込むことはできるようですが、どうもうまく行きません。どうぞ、間違っている点をご指摘ください。よろしくお願いいたします。 OS: MacOSX 10.3.9 Browser: Safari Server: Macmini(10.3.9)

関連するQ&A

  • 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); } }

  • jarファイルの起動方法

    クラスファイルと画像をjarファイルに固めてクリックで起動したいのですができません。正確に言うと、最初の2~3回はできていたのですが、何回かプログラムを修正せいているうちにjarに固めてクリックしても起動しなくなりました。  マニフェストファイルは、 Main-Class: MainWindow(この後改行) です。 jarファイルへの固め方は、testフォルダにclassファイルと画像ファイルがあるものとして、 cd C:\test C:\j2sdk1.4.2_05\bin\jar cf kakei.jar *.class *.PNG C:\j2sdk1.4.2_05\bin\jar ufm kakei.jar manifest.txt です。 プログラム内の画像のロード方法は、 MediaTracker tracker=null; Image images=null; try{ tracker=new MediaTracker(this);//画像の取り込み tk=Toolkit.getDefaultToolkit(); URL img=getClass().getResource("img1.PNG"); images=tk.createImage(img); tracker.addImage(images,0,93,28); } catch(Excetption e){} 最初の2~3回はこの方法できちんと実行できました。また、ほかのアプリケーションもこの方法でやっていましたがうまくいきます。画面にまったく表示されませんが実行後にjarファイルを削除できないので おそらく実行はされているのだと思います。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • JAR

     JAVAを覚えたいと、数冊の本を買ってみたのですが まったくダメです。わからないです。あいにく、どの本にもJARについてはまったく書かれていません。  WebであるJAVAプログラムをダウンロードしたのですが、 それにJARがあり、JARにまとめる?方法まではわかったのですが、HTMLにAppletタグで表示しようとすると表示されません。  ダウンロードしたものはまったく問題がないのですが、 ある本のプログラムclassをまとめてJARにすると、HTMLでは動きません。classのままだと問題ありません。  マニフェストには Main-Class: だけは指定しています。  どうすれば、Web表示されるでしょうか?

  • JavaのAppletは画像として保存できますか

    HTML画面上に表示されているApplet部分を、JPEGやGIFなどの画像ファイルとして保存することは可能なのでしょうか? 画像をAppletの中に取り込む方法はたくさん記載されているのですが、上記の方法についての記述を見つけることが出来ませんでした。 ご存知の方いらっしゃいましたら、教えてください。

    • ベストアンサー
    • Java
  • JARファイル・JARコマンドに関して

    JARファイル・JARコマンドに関しての質問です。 同じクラスファイルを使用して、2つのJARファイルを作成しました。 しかし、バイナリツールでファイルを比較したところ、バイナリデータの一致が取れませんでした。 下記に、例と質問を記載します。 ご存知の方がおりましたら、ご教授よろしくお願いします。 例: 1.jar cf C:\java\test\HelloWorld1.jar C:\java\test\HelloWorld.class (クラスファイルをHelloWorld1.jarというJARファイルを作成します。) 2.jar cf C:\java\test\HelloWorld2.jar C:\java\test\HelloWorld.class (クラスファイルをHelloWorld2.jarというJARファイルを作成します。) ※HelloWorld.classはhelloと表示されるだけの簡単プログラムです。 1で作成されたJARファイルと、2で作成されたJARファイルをバイナリで比較したところ一致しませんでした。 ■質問 1.JARコマンドはJARファイルを作成する際に何をしているのでしょうか? 2.同じクラスファイルでJARファイルを作成しているのに、バイナリデータに差がでるのはなぜでしょうか? JARファイル作成時に作成時間等をファイルに保持しているのでしょうか? (作成時間が違うため、JARファイルで差がでるのでは、と推測しています・・・・) いろいろ調べてみたのですが、良い情報が見つかりませんでした。 参考URLだけでも結構です。 ご存知の方がいましたら、ご教授よろしくお願いします。m(_ _)m

    • ベストアンサー
    • Java
  • appletで離れた場所の画像の読込

    http://jp.sun.com/products/software/solaris/wp/NFS/webnfs11.html 上のページで、NFSプロトコルだと離れたファイルアクセスが出来る様なことが書かれていますが、どうすればアクセスできるのか分かりません。タイトルの通り、appletでの離れた場所の画像の読み込みが目的です。画像の場所はappletへの入力で指定できるようにしたいです。特にNFSにこだわる訳ではなく、他の方法でも構いません。よろしくお願いします。

  • java でjarファイルをつくりホームページに公開するには?

    悩んだ結果分からなかったので教えていただきたいのですが。 ホームページを作っていてjava Applet 又は、Swingでjarファイルをつくり、 jarファイルで起動できるまではできました。 いざホームページにアップしようと思った時、 今までAppletはclassを指定してOkでした。 jarファイルにした理由は内部クラスがあるとどうもサーバー側 が受け付けなかったので。 (1)jarファイルを使用した場合どのように記述したらよろしいでしょうか? jarファイルの内容は単純に親クラスと内部クラスを合わせたものです。 (2)swingのjarファイルファイルを使用した場合もどのように記述したら よろしいでしょうか? よろしくお願い申し上げます。 ☆良解答の方にはポイントを差し上げます。

    • ベストアンサー
    • Java
  • Jarファイルについて

    Jarファイルについて質問があります。 XalanやXercesなどは、Jarファイルとして提供されていて、 classpathに通してJavaプログラム内で使用するわけですが、 実行の際Jarファイルは一度解凍されてから、JVM内に読み込まれるのでしょうか? JarファイルはZipと同様の圧縮形式だと認識してますので、 解凍してから実行されるのだろうと思ってます。 どなたかご教授願いますでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Jarファイルについて。

    Jarファイルについて。 Jarで固めらたアプリの実行ログ(アプリスタート時に)に、JarファイルのMANIFEST.MF が持つCreate情報(コンパイルに使用したJavaバージョン)を書き出したいと思っています。 コマンド等で取り出す方法をご存知の方、ご教授お願いできますでしょうか。 MANIFEST.MFファイルの中身 ----------------- Manifest-Version: 1.0 Created-By: 1.6.0_18 (Sun Microsystems Inc.) -----------------

    • ベストアンサー
    • Java
  • jar ファイルに追加する方法

    Java初心者で勉強中です。 既にあるjarファイルにあるclass を追加する方法ってあるのでしょうか? (1)例えば、garoon3api.jar に Hello.class を追加する場合はどうすればよいのでしょうか? (2)garoon3api.jarは、 garoon3api.jar       |----com        |----cybozu        |-----garoon3        |-----usecase のようになっていて、 usecaseの下に Hello.class を追加する方法はあるのでしょうか? ネット等で調べてはいるのですが、うまくいかず困っています。 どなたかよろしくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう