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!