Saya membaca tutorial Java tentang Sun untuk file JAR, tetapi saya masih tidak dapat menemukan solusi untuk masalah saya. Saya perlu menggunakan kelas dari file jar bernama jtwitter.jar, saya mengunduh file tersebut, dan mencoba menjalankannya (saya menemukan kemarin bahwa file .jar dapat dijalankan dengan mengklik dua kali pada mereka) dan Vista memberi saya kesalahan yang mengatakan " Gagal memuat atribut Manifes Kelas Utama dari [path] /jtwitter.jar ".
Orang yang membuat kode file .jar ingin saya mengimpornya, tetapi di mana saya menyimpan file .jar untuk mengimpornya ke dalam kode saya? Saya mencoba meletakkan file .jar dan file .java saya di direktori yang sama, tidak berhasil.
File yang saya coba kerjakan ada di sini: http://www.winterwell.com/software/jtwitter.php
Saya menggunakan JCreator LE.
Jawaban:
Tidak semua file jar dapat dieksekusi.
Sekarang, Anda perlu mengimpor kelas, yang ada di bawah jar, di file java Anda. Sebagai contoh,
import org.xml.sax.SAXException;
Jika Anda mengerjakan IDE, Anda harus merujuk dokumentasinya. Atau setidaknya tentukan mana yang Anda gunakan di sini di utas ini. Ini pasti akan memungkinkan kami untuk membantu Anda lebih jauh.
Dan jika Anda tidak menggunakan IDE apa pun, silakan lihat opsi javac -cp . Namun, itu ide yang jauh lebih baik untuk mengemas program Anda dalam sebuah
jar
file, dan menyertakan semua yang diperlukanjar
di dalamnya. Kemudian, untuk mengeksekusijar
, seperti,Anda harus memiliki
META-INF/MANIFEST.MF
file dijar
. Lihat di sini , untuk mengetahui caranya.sumber
import
apa-apa - ini hanya menghindari keharusan menulis nama kelas yang sepenuhnya memenuhi syarat siapa pun yang pernah kelas tersebut digunakan, hanya mengizinkan nama kelas sederhana (SAXException
) - semacam hanya mengimpor namespaceKatakanlah kita perlu menggunakan kelas
Classname
yang terdapat dalam file jarorg.example.jar
Dan sumber Anda ada di file
mysource.java
Seperti ini:import org.example.Classname; public class mysource { public static void main(String[] argv) { ...... } }
Pertama, seperti yang Anda lihat, dalam kode Anda, Anda harus mengimpor kelas. Untuk melakukan itu yang Anda butuhkan
import org.example.Classname;
Kedua, saat Anda mengompilasi sumber, Anda harus mereferensikan file jar.
Harap perhatikan perbedaan dalam menggunakan
:
dan;
saat menyusunJika Anda menggunakan sistem operasi mirip unix:
javac -cp '.:org.example.jar' mysource.java
Jika Anda berada di bawah jendela:
Setelah ini, Anda mendapatkan file bytecode
mysource.class
Sekarang Anda dapat menjalankan ini:
Jika Anda menggunakan sistem operasi mirip unix:
java -cp '.:org.example.jar' mysource
Jika Anda berada di bawah jendela:
sumber
.
dariorg.example.jar
.*PATH
variabel: file .jar harus diberi nama satu per satu .Anda perlu menambahkan file jar di classpath. Untuk mengkompilasi kelas java Anda:
Untuk menjalankan kode Anda (asalkan MyClass berisi metode utama):
Anda dapat memiliki file jar di mana saja. Cara di atas berfungsi jika file jar ada di direktori yang sama dengan file java Anda.
sumber
Anda perlu meletakkan file .jar ke classpath Anda saat mengompilasi / menjalankan kode Anda. Kemudian Anda cukup menggunakan impor standar kelas di .jar.
sumber
Seperti yang dikatakan workmad3, Anda perlu file jar berada di jalur kelas Anda. Jika Anda mengompilasi dari commandline, itu berarti menggunakan flag -classpath. (Hindari variabel lingkungan CLASSPATH; itu menyakitkan di leher IMO.)
Jika Anda menggunakan IDE, beri tahu kami yang mana dan kami dapat membantu Anda dengan langkah-langkah khusus untuk IDE tersebut.
sumber