動的環境での JAR のマニフェスト ファイルへのアクセス
アプリケーションが動的環境から起動されると、JAR のマニフェスト ファイルの取得が困難になりますアプレットやウェブスタートなど。 getClass().getClassLoader().getResources(...) を使用する標準的なアプローチは、ターゲット クラスをホストする JAR ではなく、ランタイムにロードされた最初の JAR からマニフェストを返します。
これを解決するには、2 つのメソッドを使用します。探索できます:
1.リソース URL の反復:
getResources() によって返された URL を反復し、目的のものが見つかるまでそれぞれをマニフェストとして読み取ります。
Enumeration<URL> resources = getClass().getClassLoader() .getResources("META-INF/MANIFEST.MF"); while (resources.hasMoreElements()) { try { Manifest manifest = new Manifest(resources.nextElement().openStream()); // Check if it's the target manifest and perform necessary actions. } catch (IOException E) { // Handle exception. } }
2. findResource メソッドを使用します:
クラス ローダーが java.net.URLClassLoader のインスタンス (AppletClassLoader など) の場合は、それをキャストし、アプレットのマニフェストを返すことが知られている findResource() を直接呼び出します。 .
URLClassLoader cl = (URLClassLoader) getClass().getClassLoader(); try { URL url = cl.findResource("META-INF/MANIFEST.MF"); Manifest manifest = new Manifest(url.openStream()); // Use the manifest. } catch (IOException E) { // Handle exception. }
以上が動的環境で JAR のマニフェスト ファイルにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。