A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こういうこと?
http://www.jajakarta.org/tomcat/tomcat5.0/ja/doc …
それとも
こういうこと?
http://www.atmarkit.co.jp/fjava/javatips/002cont …
この回答への補足
warファイルに含まれるクラスが、lib配下にあるjarファイルを見て、
ロード対象となるjarファイルから特定のクラスをインスタンス化する
というような仕組みで考えています。
その上で、tomcat起動後にlib配下にjarファイルを追加し、
その後にtomcatを起動せず、jarファイル内にあるクラスを
インスタンス化したい、というイメージです。
なんかこんな感じで思うような動きはしてくれましたが、
お作法的にこんなのでいいのか全く分かりません・・・。
final String PLUGINS_DIRECTORY = "WEB-INF/lib";
//jarのあるディレクトリ
String cpath = ServletActionContext.getServletContext().
getRealPath(File.separator + PLUGINS_DIRECTORY);
try {
ArrayList<AbstractPlugin> plugins = new ArrayList<AbstractPlugin>();
//jarファイル分繰り返す
File f = new File(cpath);
String[] files = f.list();
for (int i = 0; i < files.length; i++) {
if (files[i].endsWith(".jar")) {
//マニフェストのPlugin-Classが存在するもののみ対象
File file = new File(cpath + File.separator +
files[i]);
JarFile jar = new JarFile(file);
Manifest mf = jar.getManifest();
Attributes att = mf.getMainAttributes();
String cname = att.getValue("Plugin-Class");
if (cname != null) {
//jarロード
URL url = file.getCanonicalFile().toURI().toURL();
URLClassLoader loader = new URLClassLoader(
new URL[] { url }, AbstractPlugin.class.getClassLoader());
Class cls = loader.loadClass(cname);
//AbstractPluginを継承してるクラスのみインスタンス化
Class sClsObj = cls.getSuperclass();
if (sClsObj.equals(AbstractPlugin.class)) {
AbstractPlugin plugin =
(AbstractPlugin)cls.newInstance();
plugins.add(plugin);
}
} catch (Exception ex) {
ex.printStackTrace();
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 2 2022/05/14 09:45
- HTML・CSS Chrome のキャッシュについて 3 2022/05/26 07:50
- ホームページ作成・プログラミング メールフォームで送信すると「通信に失敗しました。ページの再読み込みを...」で送信できません。 2 2023/05/26 18:11
- LINE LINEアプリ内のQRコードリーダーがカメラのピントが合わず読み込めません。 2 2022/08/26 15:39
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
- UNIX・Linux いつの間にか自宅サーバーが見れなくなっていた時のトラブルシューティング手順をご教示ください 4 2023/02/15 21:01
- その他(ソフトウェア) MMD PMXエディタ プラグイン 押せない はじめまして。MMDについて質問させていただきます。 7 2022/05/04 15:53
- その他(SNS・コミュニケーションサービス) 【至急】Microsoft teamsログインできないループ・・ 3 2023/05/17 13:17
- ノートパソコン Windowsが起動しなくなってしまいました。 4 2023/08/28 16:30
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Tomcatでhtmlが実行できない。...
-
Servlet & セキュリティ(SSL)
-
Servlet で404が返る
-
処理がSTOPしたまま動かない
-
tomcatのエラー 404
-
html上で、バッチやexeファイル...
-
Eclipseで、プロジェクト名のと...
-
split関数で区切り文字がない場合
-
Eclipse・プロジェクトで、フォ...
-
javaクラスファイルをEclipseで...
-
JAVAにのeclipseに関する質問で...
-
正しいURL指定しているにもかか...
-
Eclipseのアンインストールの仕方
-
エラー:org.springframeworkが...
-
マイクラjavaでForgeを入れたい...
-
Eclipse(JAVA)のデバッグで他...
-
JSPのクラスをコンパイルできな...
-
javaが文字コードの影響でコン...
-
JSPからServletへの遷移
-
eclipse でclassesフォルダーが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tomcatのリスタートについて
-
サーブレットでhtml,cssや画像...
-
Tomcatでhtmlが実行できない。...
-
eclipseとtomcatで404エラー
-
tomcatのシステムを共有サーバ...
-
Struts、設定不備?404エラーで...
-
Tomcatでアクセスログを出力し...
-
tomcat7.0 管理コンソールへの...
-
jsp & tomcat で更新されない
-
tomcatのエラー 404
-
アプリケーションサーバを再起...
-
tomcatを起動させることができ...
-
JSPでdivタグに定義したスタイ...
-
処理がSTOPしたまま動かない
-
Servlet で404が返る
-
Tomcatの起動ができません。
-
tomcatpluginとWTPの違いとメリ...
-
javaのブラウザ上でのアップレ...
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
おすすめ情報