Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengakses Manifes Jar Anda Sendiri di Jawa?

Bagaimana untuk Mengakses Manifes Jar Anda Sendiri di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-11-12 11:38:02912semak imbas

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

Membaca Manifes Balang Anda Sendiri

Mengakses fail Manifes yang dikaitkan dengan kelas anda sendiri boleh menjadi satu cabaran, terutamanya apabila menggunakan getClass( ).getClassLoader().getResource(...). Kaedah ini mungkin mengembalikan manifes daripada fail .jar yang berbeza jika dipanggil daripada applet atau persekitaran webstart.

Untuk mengatasi had ini, pertimbangkan penyelesaian berikut:

1. Mengulang Melalui URL Manifes

Lelaran melalui URL yang dikembalikan oleh getResource(...) dan bacanya sebagai manifes sehingga anda menemui yang betul:

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 . Menggunakan URLClassLoader

Jika getClass().getClassLoader() ialah instance java.net.URLClassLoader, anda boleh menghantarnya dan menggunakan 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
}

Pendekatan ini diketahui dapat mengembalikan manifes yang betul untuk applet.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Manifes Jar Anda Sendiri di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn