ホームページ  >  記事  >  Java  >  アプレットまたは Webstart 環境で元の JAR のマニフェスト ファイルにアクセスするにはどうすればよいですか?

アプレットまたは Webstart 環境で元の JAR のマニフェスト ファイルにアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-19 13:45:02260ブラウズ

How to Access the Manifest File of the Originating JAR in Applet or Webstart Environments?

元の JAR のマニフェスト ファイルの取得

アプリケーションを開始した JAR のマニフェスト ファイルにアクセスするには、getClass( などの従来のメソッド) ).getClassLoader().getResources(...) は、特にアプレットや Webstart アプリケーションなどの環境では十分ではない場合があります。考慮すべき 2 つの代替アプローチを次に示します。

取得した URL の反復処理:

  1. getResources() を使用して、潜在的なマニフェスト ファイルを表す URL のコレクションを取得します。
  2. 必要な URL が見つかるまで、これらの URL を繰り返し処理し、それぞれをマニフェストとして読み取ります。

コード例:

Enumeration<URL> resources = getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
while (resources.hasMoreElements()) {
    try {
        URL url = resources.nextElement();
        Manifest manifest = new Manifest(url.openStream());
        // If manifest is null, try using JarInputStream instead: manifest = url.openStream().getManifest();

        // Verify and process the manifest as needed
        ...
    } catch (IOException e) {
        // Handle the exception
    }
}

ClassLoader タイプの確認と findResource() の使用:

  1. getClass().getClassLoader() が java.net.URLClassLoader のインスタンスかどうかを確認します (通常、Sun クラスローダーの場合)
  2. その場合は、それをキャストし、findResource() を使用してマニフェストを取得します。

コード例:

URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
try {
    URL url = cl.findResource("META-INF/MANIFEST.MF");
    Manifest manifest = new Manifest(url.openStream());
    // Do your stuff with the manifest
    ...
} catch (IOException e) {
    // Handle the exception
}

以上がアプレットまたは Webstart 環境で元の JAR のマニフェスト ファイルにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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