ホームページ  >  記事  >  Java  >  Java で独自の Jar のマニフェストにアクセスするにはどうすればよいですか?

Java で独自の Jar のマニフェストにアクセスするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-12 11:38:02910ブラウズ

How to Access the Manifest of Your Own Jar in Java?

独自の Jar のマニフェストを読み取る

独自のクラスに関連付けられたマニフェスト ファイルにアクセスするのは、特に getClass( を使用する場合) が難しい場合があります。 ).getClassLoader().getResource(...)。このメソッドは、アプレットまたは Webstart 環境から呼び出された場合、別の .jar ファイルからマニフェストを返す可能性があります。

この制限を克服するには、次の解決策を検討してください。

1.マニフェスト URL の反復

getResource(...) によって返された URL を反復し、正しい URL が見つかるまでマニフェストとして読み取ります。

Enumeration<URL> resources = getClass().getClassLoader()
   .getResources("META-INF/MANIFEST.MF");
while (resources.hasMoreElements()) {
     try {
       Manifest manifest = new Manifest(resources.nextElement().openStream());
       // check that this is your manifest and do what you need or get the next one
       ...
     } catch (IOException E) {
       // handle
     }
}

2 。 URLClassLoader

の使用 getClass().getClassLoader() が java.net.URLClassLoader のインスタンスの場合、それをキャストして findResource(...):

URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
try {
   URL url = cl.findResource("META-INF/MANIFEST.MF");
   Manifest manifest = new Manifest(url.openStream());
   // do stuff with it
   ...
} catch (IOException E) {
   // handle
}
このアプローチは、アプレットの正しいマニフェストを返すことが知られています。

以上がJava で独自の Jar のマニフェストにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。