Cara yang benar untuk menambahkan botol eksternal (lib / *. Jar) ke proyek IntelliJ IDEA

734

Saat membuat proyek Java baru di IntelliJ IDEA, direktori dan file berikut dibuat:

./projectname.iml
./projectname.ipr
./projectname.iws
./src/

Saya ingin mengonfigurasi IntelliJ IDEA untuk memasukkan JAR ketergantungan saya ./lib/*.jarke dalam proyek. Apa cara yang benar untuk mencapai ini di IntelliJ IDEA?

Knorv
sumber
Saya menghadapi masalah saat menjalankan program di terminal di IntelliJ. Saya telah menggunakan pernyataan impor untuk menggunakan kelas yang saya butuhkan dalam program ini. Sementara saya menjalankannya di IDE, itu berjalan dengan baik. Tetapi ketika saya mencoba untuk mengkompilasi dari baris perintah% javac MyProgram.java, ia mengatakan kesalahan: tidak dapat menemukan simbol
don_Gunner94

Jawaban:

1306

Langkah-langkah untuk menambahkan botol eksternal di IntelliJ IDEA:

  1. Klik Filedari bilah alat
  2. Struktur Proyek ( CTRL+ SHIFT+ ALT+ Spada Windows / Linux, + ;pada Mac OS X)
  3. Pilih Modul di panel kiri
  4. Tab ketergantungan
  5. '+' → JAR atau direktori
Cambium
sumber
99
Juga, pertimbangkan untuk menambahkan folder lib, dan gunakan "Lampirkan Direktori Direktori", yang akan menambahkan semua stoples di folder lib. Untuk proyek yang besar, ini membuat Anda tidak harus memilih masing-masing botol secara terpisah.
joeslice
16
Untuk referensi di masa mendatang: tombol "Add" berada di tepi kanan jendela dan saya menghabiskan banyak waktu mencarinya sebelum menemukan posting ini dan berpikir untuk mengubah ukuran jendela. (Ini ada di OSX 10.6.5 ...)
Daniel Dickison
7
@joeslice yang hanya berfungsi jika JAR ada di root direktori, kan? Tampaknya tidak berfungsi untuk JAR di dalam sub-direktori di dalam 'lib'.
Opyate
6
Di IJIdea 13, ada "+"> bukannya "add".
Val
4
Saya menggunakan IDEA 14.0.2. Alih-alih Tambahkan ada + simbol. Setelah mengklik + ada 3 opsi: 1. JAR atau direktori 2. Perpustakaan ... 3. Modul Ketergantungan ...
Ripon Al Wasim
239

IntelliJ IDEA 15 & 2016

  1. File > Struktur Proyek ...

    File> Struktur Proyek

    atau tekan Ctrl+ Alt+ Shift+S

  2. Pengaturan Proyek > Modul > Dependensi > " + " tanda> JAR atau direktori ...

    Modul> Dependensi> JAR atau direktori

  3. Pilih file jar dan klik OK, lalu klik tombol OK lain untuk mengonfirmasi

    masukkan deskripsi gambar di sini

    masukkan deskripsi gambar di sini

  4. Anda dapat melihat file jar di folder "Perpustakaan Eksternal"

    masukkan deskripsi gambar di sini

ROMANIA_engineer
sumber
Saya benar-benar membuat Modul baru di panel "Modul" (dinamai misalnya "JarsForLogging"), kemudian menambahkan semua stoples yang saya butuhkan (terletak di beberapa direktori jauh dari pohon proyek) ke Modul baru ini dan menandai toples sebagai " Ekspor". Akhirnya, saya menambahkan Modul yang baru dibuat ke dependensi Modul asli. Sedikit lebih hierarkis seperti itu.
David Tonhofer
Selain itu: pastikan bahwa izin sistem file diatur dengan benar untuk .jarfile. Gunakan chmoduntuk memodifikasinya di Linux atau MacOS.
JJD
4
masih berfungsi di 2018 (versi tahun dan IntelliJ). Terima kasih. Dengan cara ini saya dapat memuat dan menggunakan perpustakaan Armed Bear Common Lisp dari dalam IntelliJ, keren!
Jason Robinson
Ya. Bekerja dengan baik dengan IntelliJ saya juga. Terima kasih!
Bms bharadwaj
1
@ don_Gunner94, melalui baris perintah, Anda juga harus menyediakan stoples seperti ini:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer
118

Cukup salin dan tempel .jar di bawah folder "libs" (atau seluruh folder "libs"), klik kanan padanya dan pilih opsi 'Tambahkan sebagai perpustakaan' dari daftar. Itu akan melakukan sisanya ...

masukkan deskripsi gambar di sini

gurkan
sumber
Sederhana dan cara yang biasa kita lakukan sejak zaman Eclipse.
Sufian
3
Polos dan Sederhana !!
Anaximandro Andrade
3
Agak menyebalkan masih meminta "nama", bisakah Anda meninggalkan sampah di sana?
dividebyzero
Ini membantu saya juga!
Preeti Joshi
Saya menghadapi masalah saat menjalankan program di terminal di IntelliJ. Saya telah menggunakan pernyataan impor untuk menggunakan kelas yang saya butuhkan dalam program ini. Sementara saya menjalankannya di IDE, itu berjalan dengan baik. Tetapi ketika saya mencoba untuk mengkompilasi dari baris perintah% javac MyProgram.java, ia mengatakan kesalahan: tidak dapat menemukan simbol. -
don_Gunner94
20

Anda menambahkannya sebagai perpustakaan ke modul Anda.

Saya biasanya memiliki /libdirektori di sumber saya. Saya meletakkan semua JAR yang saya butuhkan di sana, tambahkan / lib sebagai perpustakaan, dan menjadikannya bagian dari dependensi modul saya.

Pembaruan 2018: Saya menggunakan IntelliJ 2017/2018 sekarang.

Saya berkomitmen penuh untuk Maven dan Nexus untuk manajemen ketergantungan.

Inilah cara dunia pergi. Setiap proyek Java open source yang saya tahu menggunakan Maven atau Gradle. Kamu juga harus.

Duffymo
sumber
Ya, tetapi bagaimana jika pom Maven tidak disebut pom.xml? Maka sepertinya saya tidak bisa membaca dependensi Maven.
user1001630
4
Konvensi akan menyebutnya pom.xml. Ikuti konvensi dan ganti nama file Anda.
duffymo
Saya masih menemukan kebutuhan, ketika toples tidak memiliki pakar repo ... tetapi, saya tidak mengerti bagaimana melakukan ini dengan benar. Saya mengerti bagaimana cara menambahkan direktori, saya hanya tidak mengerti bagaimana cara mendapatkannya juga mengimpor javadocs. ini berfungsi ketika saya menambahkan tabung sebagai satu file, tetapi tidak jika saya menambahkan direktori. Apakah itu tidak mungkin?
ycomp
Ini saran yang bagus. Menambahkan toples secara manual memakan waktu dan rentan terhadap kesalahan. Ketergantungan Anda harus selalu dikonfigurasi "melalui kode", di pom.xml(untuk pakar) atau apa pun yang setara untuk gradle.
vikingsteve
1
Semua JAR memiliki repo. Jika tidak tersedia dalam repo publik atau pribadi, Anda dapat menginstalnya secara manual di .m2 lokal Anda. Tidak ada alasan untuk melakukan sebaliknya.
duffymo
17

Jika Anda membangun proyek Anda dengan gradle, Anda hanya perlu menambahkan satu baris ke dependensi di build.gradle:

buildscript {
    ...
}
...

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

dan kemudian tambahkan folder ke proyek atau modul root Anda:

masukkan deskripsi gambar di sini

Maka Anda menjatuhkan botol Anda di sana dan Anda baik untuk pergi :-)

cesards
sumber
Saya menghadapi masalah saat menjalankan program di terminal di IntelliJ. Saya telah menggunakan pernyataan impor untuk menggunakan kelas yang saya butuhkan dalam program ini. Sementara saya menjalankannya di IDE, itu berjalan dengan baik. Tetapi ketika saya mencoba untuk mengkompilasi dari baris perintah% javac MyProgram.java, ia mengatakan kesalahan: tidak dapat menemukan simbol. -
don_Gunner94
7

Saya menggunakan metode ini dan bekerja dengan baik:

1- Salin dan tempel .jarfile di bawah libsfolder.

2- Tambahkan compile fileTree(dir: 'libs', include: '*.jar')ke dependenciesdalam build.gradlemaka semua stoples di libsfolder akan dimasukkan ..

3- Klik kanan libs folder dan pilih opsi 'Tambahkan sebagai perpustakaan' dari daftar.

Ali Hesari
sumber
Terima kasih, ini adalah satu-satunya hal yang berhasil untuk saya!
Gregordy
Saya menghadapi masalah saat menjalankan program di terminal di IntelliJ. Saya telah menggunakan pernyataan impor untuk menggunakan kelas yang saya butuhkan dalam program ini. Sementara saya menjalankannya di IDE, itu berjalan dengan baik. Tetapi ketika saya mencoba untuk mengkompilasi dari baris perintah% javac MyProgram.java, ia mengatakan kesalahan: tidak dapat menemukan simbol.
don_Gunner94
5

Perpustakaan tidak dapat secara langsung digunakan dalam program apa pun jika tidak ditambahkan dengan benar ke file gradle proyek.

Ini dapat dengan mudah dilakukan dalam IDE cerdas seperti inteli J.

1) Pertama sebagai konvensi, tambahkan nama folder 'libs' di bawah file src proyek Anda. (ini dapat dengan mudah dilakukan menggunakan IDE itu sendiri)

2) kemudian salin atau tambahkan file perpustakaan Anda (mis: file .jar) ke folder bernama 'libs'

3) sekarang Anda dapat melihat file perpustakaan di dalam folder libs. Sekarang klik kanan pada file dan pilih 'add as library'. Dan ini akan memperbaiki semua file yang relevan di program Anda dan perpustakaan akan langsung tersedia untuk Anda gunakan.

Tolong dicatat:

Setiap kali Anda menambahkan perpustakaan ke proyek, pastikan bahwa proyek mendukung perpustakaan

Keet Sugathadasa
sumber
3

Bantuan besar ditemukan di sini. Namun, saya masih tidak bisa bekerja walaupun memuat JAR dengan benar. Saya mengetahui kemudian bahwa saya secara tidak sengaja membuat modul dalam struktur file alih-alih folder biasa dan modul ini sudah dipilih sebelumnya dalam pengaturan proyek.

Inilah jejaknya:

File -> Struktur Proyek -> Modul -> (pilih modul yang tepat jika Anda memiliki lebih banyak) -> Ketergantungan -> + -> JAR atau Perpustakaan

Rolland
sumber
3

Meskipun saya setuju dengan jawaban sebelumnya, penting untuk dicatat bagaimana mengakses kode perpustakaan eksternal tersebut.

Misalnya untuk mengakses kelas di perpustakaan eksternal, Anda akan ingin menggunakan kata kunci impor diikuti dengan nama perpustakaan eksternal, dilanjutkan dengan notasi titik hingga kelas yang diinginkan tercapai.

Lihat gambar di bawah ini untuk melihat bagaimana saya mengimpor kelas CodeGenerationException dari perpustakaan quickfixj.

masukkan deskripsi gambar di sini

Crt
sumber