Rumah >Java >javaTutorial >Bagaimana untuk Melaksanakan Fail JAR dengan Ketergantungan Tambahan: -jar vs. -cp?

Bagaimana untuk Melaksanakan Fail JAR dengan Ketergantungan Tambahan: -jar vs. -cp?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-08 03:04:021068semak imbas

How to Execute a JAR File with Additional Dependencies: -jar vs. -cp?

Panggil "java -jar MyFile.jar" dengan Pilihan Classpath Tambahan

Di Java, terdapat dua cara untuk melaksanakan fail JAR: menggunakan pilihan -jar atau menentukan classpath dengan -cp. Walau bagaimanapun, percubaan untuk menggabungkan kedua-dua pilihan membawa kepada ralat.

Apabila menggunakan -jar, Mesin Maya Java (JVM) menganggap bahawa fail JAR mengandungi semua kebergantungan yang diperlukan. Oleh itu, menentukan laluan kelas tambahan dengan -cp tidak disyorkan.

Sebaliknya, terdapat dua pendekatan alternatif:

Pendekatan 1: Tambah JAR pada Manifes Utama

  1. Salin fail JAR yang diperlukan ke subfolder, seperti "libs".
  2. Gunakan tugasan dalam Ant sebelum membina JAR:
<code class="xml"><manifestclasspath property="myprogram.manifest.classpath" jarfile="MyProgram.jar">
  <classpath>
    <fileset dir="libs" includes="*.jar" />
  </classpath>
</manifestclasspath></code>
  1. Buat JAR dengan manifes yang dikemas kini:
<code class="xml"><jar destfile="MyProgram.jar" basedir="classes">
  <manifest>
    <attribute name="Main-Class" value="main.Main" />
    <attribute name="Class-Path" value="${myprogram.manifest.classpath}" />
  </manifest>
</jar></code>

Dengan menyatakan laluan kelas dalam manifes , java -jar MyProgram.jar akan memasukkan semua kebergantungan.

Pendekatan 2: Tentukan Classpath dengan -cp

  1. Sertakan semua fail JAR yang diperlukan dalam classpath:
java -cp 'MyProgram.jar:libs/*' main.Main

Menggunakan sintaks * berkembang untuk memasukkan semua fail JAR dalam direktori "libs".

Ingat, adalah penting untuk memilih sama ada pendekatan -jar atau -cp. Menggabungkan kedua-duanya boleh menyebabkan konflik dan ralat laluan kelas.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Fail JAR dengan Ketergantungan Tambahan: -jar vs. -cp?. 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