独自の 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 サイトの他の関連記事を参照してください。