Menjalankan JAR dengan Pilihan Classpath Tambahan: Memahami Dilema "-cp" vs. "-jar"
Apabila melaksanakan fail JAR , pembangun mungkin memerlukan akses kepada perpustakaan atau kelas tambahan selain daripada yang disertakan dalam JAR itu sendiri. Untuk menangani perkara ini, Java menawarkan dua pilihan: menggunakan bendera baris arahan -cp (classpath) atau -jar.
-cp vs. -jar: Kes Pengecualian Bersama
Adalah penting untuk ambil perhatian bahawa -cp dan -jar mempunyai tujuan yang berbeza dan tidak boleh digabungkan. Bendera -jar menentukan fail JAR untuk dilaksanakan, manakala -cp mentakrifkan laluan kelas yang digunakan untuk mencari kelas tambahan dan kebergantungan.
Pilihan -jar:
Jika kebergantungan yang diperlukan dirangkumkan dalam fail JAR, atau jika ia boleh diambil dari laluan kelas, menggunakan bendera -jar sahaja sudah memadai. Mesin Maya Java (JVM) akan memuatkan kelas secara automatik daripada JAR dan laluan kelas, seperti yang dinyatakan dalam fail manifes JAR.
Pilihan -cp:
Apabila kebergantungan luaran tidak disertakan dalam JAR atau tidak ditemui pada classpath, pilihan -cp mesti digunakan. Ia membenarkan pembangun mentakrifkan laluan kelas secara eksplisit, termasuk JAR utama dan sebarang JAR atau direktori tambahan yang diperlukan yang mengandungi fail kelas. Sintaks berikut menunjukkan perkara ini:
java -cp 'MyProgram.jar:libs/*' main.Main
Dalam contoh ini, MyProgram.jar menentukan JAR utama, libs/* (menggunakan sintaks dir/*) menambah semua JAR daripada subdirektori libs ke classpath dan main.Main menunjukkan titik masuk (kelas utama) program.
Alternatif: Mengubah suai Fail Manifes JAR
Sebagai alternatif,
Dengan memahami perbezaan dan kes penggunaan -cp dan -jar, pembangun boleh melaksanakan fail JAR dengan berkesan yang memerlukan kebergantungan laluan kelas tambahan, memastikan kelancaran dan ralat- pelaksanaan percuma.
Atas ialah kandungan terperinci Bagaimana Saya Menjalankan JAR dengan Pilihan Laluan Kelas Tambahan: -cp vs. -jar Dijelaskan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!