Kepentingan Atribut Manifest Utama dalam JAR Pelaksana Sendiri

1. Gambaran keseluruhan

Setiap kelas Java yang boleh dilaksanakan mesti mengandungi kaedah utama . Ringkasnya, kaedah ini adalah titik permulaan aplikasi.

Untuk menjalankan kaedah utama kami dari fail JAR yang boleh dilaksanakan sendiri, kami harus membuat fail manifes yang betul dan membungkusnya bersama dengan kod kami. Fail manifes ini mesti mempunyai atribut manifes utama yang menentukan jalan ke kelas yang mengandungi kaedah utama kami.

Dalam tutorial ini, kami akan menunjukkan cara mengemas kelas Java sederhana sebagai JAR yang dilaksanakan sendiri dan menunjukkan pentingnya atribut manifes utama untuk pelaksanaan yang berjaya.

2. Melaksanakan JAR Tanpa Atribut Manifest Utama

Untuk lebih praktikal, kami akan menunjukkan contoh pelaksanaan yang tidak berjaya tanpa atribut manifes yang betul.

Mari tulis kelas Java sederhana dengan kaedah utama:

public class AppExample { public static void main(String[] args){ System.out.println("AppExample executed!"); } } 

Untuk mengemas kelas contoh kita ke arkib JAR, kita harus pergi ke cengkerang sistem operasi kita dan menyusunnya:

javac -d . AppExample.java 

Kemudian kita boleh memasukkannya ke dalam JAR:

jar cvf example.jar com/baeldung/manifest/AppExample.class 

Example.jar kami akan mengandungi fail manifes lalai. Kita sekarang boleh cuba melaksanakan JAR:

java -jar example.jar 

Pelaksanaan akan gagal dengan ralat:

no main manifest attribute, in example.jar 

3. Melaksanakan JAR Dengan Atribut Manifest Utama

Seperti yang kita lihat, JVM tidak dapat menemui atribut manifes utama kami. Oleh kerana itu, kelas utama kami tidak dapat mengandungi kaedah utama kami.

Mari sertakan atribut manifes yang betul ke dalam JAR bersama dengan kod kami. Kita perlu membuat fail MANIFEST.MF yang mengandungi satu baris:

Main-Class: com.baeldung.manifest.AppExample 

Nyata kami kini mengandungi classpath untuk kami menyusun AppExample.class .

Oleh kerana kami sudah menyusun kelas contoh kami, tidak perlu melakukannya lagi.

Kami hanya akan mengemasnya bersama fail manifes kami:

jar cvmf MANIFEST.MF example.jar com/baeldung/manifest/AppExample.class 

Kali ini JAR dilaksanakan seperti yang diharapkan dan menghasilkan:

AppExample executed!

4. Kesimpulan

Dalam artikel ringkas ini, kami menunjukkan cara mengemas kelas Java sederhana sebagai JAR yang dilaksanakan sendiri, dan kami menunjukkan pentingnya atribut manifes utama pada dua contoh sederhana.

Kod sumber lengkap untuk contoh boleh didapati di GitHub. Ini adalah projek berasaskan Maven, sehingga dapat diimport dan digunakan sebagaimana adanya.