Memanggil "java -jar MyFile.jar" dengan Extended Classpath Options
Apabila cuba menjalankan fail JAR terhimpun yang menggabungkan perpustakaan luaran dan menghadap "java.lang.ClassNotFoundException", adalah penting untuk memahami asas-asas di sebalik Java proses pelaksanaan.
Java menyediakan dua pilihan untuk menentukan laluan kelas:
- -jar: Termasuk fail JAR dan laluan kelas yang ditentukan manifesnya.
- -cp: Secara manual menentukan laluan kelas yang lengkap, termasuk semua kebergantungan.
Penggunaan Salah
Percubaan untuk menggabungkan kedua-dua -jar dan -cp secara serentak adalah tidak betul dan akan mengakibatkan ralat yang dinyatakan di atas.
Penyelesaian
Ada dua pendekatan yang sah untuk menyelesaikan isu ini:
1. Laluan Kelas Ditakrifkan Manifes:
- Buat fail manifes dalam JAR dengan menyatakan laluan kelas yang diperlukan.
- Gunakan java -jar untuk melaksanakan JAR, yang akan memuatkan yang ditentukan secara automatik tanggungan.
2. Laluan Kelas Eksplisit:
- Gunakan java -cp untuk mentakrifkan laluan kelas yang lengkap, termasuk JAR utama dan semua JAR luaran.
- Nyatakan kelas utama secara eksplisit pada baris arahan.
Untuk Contoh:
java -cp 'MyProgram.jar:libs/*' main.Main
Nota: Sintaks dir/* menambahkan semua fail JAR daripada direktori yang ditentukan ke laluan kelas.
Petua Tambahan :
- Untuk pendekatan yang ditakrifkan dengan nyata, gunakan Ant's tugas untuk menjana fail manifes secara dinamik dengan laluan kelas yang dikehendaki sebelum membina JAR.
- Jika pilihan -jar lebih mudah, pastikan semua kebergantungan disertakan dalam manifes JAR.
Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Fail JAR dengan Perpustakaan Luaran dan Elakkan \"java.lang.ClassNotFoundException\"?. 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