• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaアプレットからローカルJarを利用する方法)

JavaアプレットからローカルJarを利用する方法

このQ&Aのポイント
  • JavaアプレットからクライアントのローカルJarファイルを呼び出す方法について説明します
  • クライアントのローカルフォルダに格納されているJarファイルをJavaアプレットから使用する方法を解説します
  • jre1.5.0_22のlib/extフォルダにapp-test.jarを格納することで、Javaアプレットからjarファイルを正常に呼び出すことができます

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

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.4

テストに使ったコードはこんな感じです。 try { File jarFile = new File("/tmp/app-test.jar"); URL[] urls = new URL[] { jarFile.toURI().toURL() }; ClassLoader parent = ClassLoader.getSystemClassLoader(); URLClassLoader ucl = new URLClassLoader(urls, parent); Class cls = ucl.loadClass("Class1"); 後はリフレクションを使ってメソッドを呼ぶなり何なりお好きにどうぞ } catch (MalformedURLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } Class1がapp-test.jar内の他のクラスを必要とする場合は、明示的にloadClass()を呼ばなくても自動的にロードされます。 java.policyは面倒だったので何でもアリにしました。 grant { permission java.security.AllPermission; };

082
質問者

補足

サンプルの掲載ありがとうございます。 確かにURLClassLoaderを使用したやり方で、出来ました! 自分でも色々試した結果を報告すると、下記のようにOBJECTタグのarchiveに ローカルjarのファイルパスを指定すると、エラーが発生せずにクラスを 読み込むことが出来ました。 <OBJECT classid="clsid:CAFEEFAC-0014-0002-0000-ABCDEFFEDCBA" width="0" height="0"> <PARAM name="code" value="Class1.class"> <PARAM name="codebase" value="./applet/"> <PARAM name="archive" value="file:///C:\Applet\lib\app-test.jar"> </OBJECT> 他にもやり方はあるのかもしれませんが、今のところ、 URLClassLoaderを使用するか、archiveに指定するかどちらかですかね。

その他の回答 (3)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

ANo.2の者ですが、アプレットの中でURLClassLoaderを使う方法でローカルのjarファイルからクラスを読み込むことができることは確認しました。

082
質問者

補足

回答ありがとうございます。 そういうやり方があるんですね。 明日、こちらの環境でも試して見たいと思います。 よろしければ、試して頂いたソースをサンプルとして掲載して 頂けると助かります。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

> アプレットのクラスファイルはwebサーバーにあり、 > アプレットから利用するjarがクライアントのローカルフォルダにある もしできるとすれば ・java.policyによってローカルファイルへのアクセスを許可する ・アプレットの中でURLClassLoaderを使い、app-test.jarから必要なクラスをロードする という手順が考えられます。 実際に試してはいないので、この方法でもセキュリティによって阻まれるかもしれません。

noname#147388
noname#147388
回答No.1

検索してから質問しよう。 大抵の枯れた技術はサンプルいっぱいある。 http://www.ne.jp/asahi/hishidama/home/tech/java/applet.html

082
質問者

補足

リンク先のどの部分でしょうか? 補足すると、アプレットのクラスファイルは はwebサーバーにあり、アプレットから利用する jarがクライアントのローカルフォルダにある ということです。

関連するQ&A