IntelliJ IDEA projesine harici kavanozlar (lib / *. Jar) eklemenin doğru yolu


734

IntelliJ IDEA'da yeni bir Java projesi oluştururken aşağıdaki dizinler ve dosyalar oluşturulur:

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

IntelliJ IDEA'yı bağımlılık JAR'larımı ./lib/*.jarprojeye dahil edecek şekilde yapılandırmak istiyorum . IntelliJ IDEA'da bunu başarmanın doğru yolu nedir?


Programı IntelliJ'deki terminalde çalıştırırken sorunla karşılaşıyorum. Programda istediğim sınıfları kullanmak için import deyimini kullandım. Ben IDE çalıştırmak, iyi çalışıyor. Ancak% javac MyProgram.java komut satırından derlemeye çalıştığımda hata diyor: sembol bulunamıyor
don_Gunner94

Yanıtlar:


1306

IntelliJ IDEA'ya harici kavanoz ekleme adımları:

  1. FileAraç çubuğundan tıklayın
  2. Proje Yapısı ( CTRL+ SHIFT+ ALT+ SWindows / Linux üzerinde, + ;Mac OS X)
  3. Sol panelden Modüller'i seçin
  4. Bağımlılıklar sekmesi
  5. '+' → JAR veya dizinler

99
Ayrıca, bir lib klasörü eklemeyi düşünün ve lib klasöründeki tüm kavanozları ekleyecek olan "Jar Dizinlerini Ekle" seçeneğini kullanın. Büyük bir proje için bu, her bir kavanozu ayrı ayrı seçmenize engel olur.
joeslice

16
İleride başvurmak için: "Ekle" düğmesi pencerenin sağ kenarındaydı ve bu yazıyı bulmadan ve pencereyi yeniden boyutlandırmayı düşünmeden önce onu aramak için çok fazla zaman harcadım. (Bu OSX 10.6.5'teydi ...)
Daniel Dickison

7
@ joeslice yalnızca JAR dizin dizinindeyse çalışır, değil mi? 'Lib' içindeki alt dizinlerdeki JAR'lar için işe yaramıyor gibi görünüyor.
opyate

6
IJIdea 13'te "ekle" yerine "+"> vardır.
Val

4
IDEA 14.0.2 kullanıyorum. Ekle yerine + sembolü vardır. + İşaretini tıkladıktan sonra 3 seçenek vardır: 1. JAR'lar veya dizinler 2. Kütüphane ... 3. Modül Bağımlılığı ...
Ripon Al Wasim

239

IntelliJ IDEA 15 ve 2016

  1. Dosya > Proje Yapısı ...

    Dosya> Proje Yapısı

    veya Ctrl+ Alt+ Shift+ tuşlarına basınS

  2. Proje Ayarları > Modüller > Bağımlılıklar > " + " işareti> JAR'lar veya dizinler ...

    Modüller> Bağımlılıklar> JAR veya dizinler

  3. Jar dosyasını seçin ve Tamam'a tıklayın, ardından onaylamak için başka bir Tamam düğmesine tıklayın

    resim açıklamasını buraya girin

    resim açıklamasını buraya girin

  4. Jar dosyasını "Harici Kitaplıklar" klasöründe görüntüleyebilirsiniz

    resim açıklamasını buraya girin


Aslında "Modüller" bölmesinde (örneğin "JarsForLogging" olarak adlandırılır) yeni bir Modül oluşturuyorum, sonra da ihtiyacım olan tüm kavanozları (proje ağacından uzak bir dizinde bulunan) bu yeni Modüle ekleyip kavanozları " İhracat". Son olarak, yeni oluşturulan Modülü orijinal Modülün bağımlılıklarına ekliyorum. Bu şekilde biraz daha hiyerarşik.
David Tonhofer

Ayrıca: dosya sistemi izinlerinin.jar dosyalar için doğru ayarlandığından emin olun . chmodBunları Linux veya MacOS'ta değiştirmek için kullanın .
JJD

4
hala 2018'de çalışıyor (yıl ve IntelliJ versiyonu). Teşekkür ederim. Bu şekilde IntelliJ içinden Silahlı Ayı Ortak Lisp kütüphanelerini yükleyebilir ve kullanabilirim, harika!
Jason Robinson

Evet. IntelliJ'imle de iyi çalışıyor. Teşekkürler!
Bms bharadwaj

1
@ don_Gunner94, komut satırı üzerinden, kavanozun şu şekilde de sağlanması gerekir:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer

118

.Jar dosyasını "libs" klasörünün (veya tüm "libs" klasörünün) altına kopyalayıp yapıştırın, sağ tıklayın ve listeden 'Kitaplık olarak ekle' seçeneğini seçin. Gerisini yapacak ...

resim açıklamasını buraya girin


Eclipse zamanından beri en basit ve alıştığımız yol.
Sufian

3
Sade ve basit!!
Anaximandro Andrade

3
Hala bir "isim" soran bir tür can sıkıcı, orada herhangi bir ıvır zıvır bırakabilir misin?
dividebyzero

Bu da bana yardımcı oldu!
Preeti Joshi

Programı IntelliJ'deki terminalde çalıştırırken sorunla karşılaşıyorum. Programda istediğim sınıfları kullanmak için import deyimini kullandım. Ben IDE çalıştırmak, iyi çalışıyor. Ancak% javac MyProgram.java komut satırından derlemeye çalıştığımda hata diyor: sembolü bulamıyorum. -
don_Gunner94

20

Bunları modülünüze kitaplık olarak eklersiniz.

Genellikle bir /lib kaynağımda dizin . Oraya ihtiyacım olan tüm JAR'ları koydum, kütüphane olarak / lib ekledim ve modül bağımlılıklarımın bir parçası haline getirdim.

2018 güncellemesi: Şimdi IntelliJ 2017/2018 kullanıyorum.

Bağımlılık yönetimi için Maven ve Nexus'a tamamen bağlıyım.

Dünya böyle gitti. Bildiğim her açık kaynaklı Java projesi Maven veya Gradle kullanıyor. Sen de yapmalısın.


Evet, ama Maven pom pom.xml olarak adlandırılmazsa? Sonra Maven bağımlılıklarını okuyamıyorum.
user1001630

4
Sözleşme buna pom.xml demektir. Kurallara uyun ve dosyanızı yeniden adlandırın.
duffymo

Kavanozun maven repo'su olmadığında hala ihtiyacım var ... ama, bunu nasıl doğru yapacağımı anlamıyorum. Nasıl bir dizin eklemek anlıyorum, sadece nasıl javadocs da almak için anlamıyorum. tek bir dosya olarak bir kavanoz eklediğimde çalışır, ancak bir dizin eklediğimde çalışmaz. Basitçe mümkün değil mi?
ycomp

Bu sağlam bir tavsiye. Kavanozları manuel olarak eklemek zaman alıcıdır ve hataya açıktır. Bağımlılıklarınız her zaman "kod yoluyla", pom.xml(maven için) veya eşdeğeri için ne olursa olsun yapılandırılmalıdır .
vikingsteve

1
Tüm JAR'ların bir repo var. Herkese açık veya özel bir depoda mevcut değilse, yerel .m2'nize manuel olarak yükleyebilirsiniz. Aksini yapmak için hiçbir sebep yok.
duffymo

17

Projenizi derecelendirmeyle oluşturuyorsanız, build.gradle içindeki bağımlılıklara bir satır eklemeniz gerekir:

buildscript {
    ...
}
...

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

ve ardından klasörü kök projenize veya modülünüze ekleyin:

resim açıklamasını buraya girin

Sonra kavanozlarını oraya bırakıyorsun ve gitmekte fayda var :-)


Programı IntelliJ'deki terminalde çalıştırırken sorunla karşılaşıyorum. Programda istediğim sınıfları kullanmak için import deyimini kullandım. Ben IDE çalıştırmak, iyi çalışıyor. Ancak% javac MyProgram.java komut satırından derlemeye çalıştığımda hata diyor: sembolü bulamıyorum. -
don_Gunner94

7

Bu yöntemi kullanın ve iyi çalışıyor:

1- Kopyala Klasörün .jaraltındaki dosyaları yapıştırın libs.

Ekle 2- compile fileTree(dir: 'libs', include: '*.jar')için dependenciesde build.gradledaha sonra tüm kavanozları libsklasörüne dahil edilecektir ..

3- libsKlasöre sağ tıklayın ve listeden 'Kitaplık olarak ekle' seçeneğini seçin.


Teşekkür ederim, bu benim için işe yarayan tek şeydi!
Gregordy

Programı IntelliJ'deki terminalde çalıştırırken sorunla karşılaşıyorum. Programda istediğim sınıfları kullanmak için import deyimini kullandım. Ben IDE çalıştırmak, iyi çalışıyor. Ancak% javac MyProgram.java komut satırından derlemeye çalıştığımda hata diyor: sembolü bulamıyorum.
don_Gunner94

5

Proje sınıflandırma dosyalarına düzgün bir şekilde eklenmezse kütüphaneler doğrudan hiçbir programda kullanılamaz.

Bu, inteli J gibi akıllı IDE'lerde kolayca yapılabilir.

1) İlk olarak, bir kural olarak, proje src dosyanızın altına 'libs' adlı bir klasör ekleyin. (bu IDE'nin kendisi kullanılarak kolayca yapılabilir)

2) ardından kütüphane dosyanızı (örneğin: .jar dosyası) 'libs' adlı klasöre kopyalayın veya ekleyin

3) şimdi libs klasörü içindeki kütüphane dosyasını görebilirsiniz. Şimdi dosyayı sağ tıklayın ve 'kitaplık olarak ekle'yi seçin. Bu işlem programınızdaki ilgili tüm dosyaları düzeltir ve kitaplığınız doğrudan kullanımınıza sunulur.

Lütfen aklınızda bulundurun:

Bir projeye kitaplık eklediğinizde, projenin kitaplığı desteklediğinden emin olun


3

Burada büyük yardımlar bulundu. Ancak, JAR'ı düzgün yüklemesine rağmen hala çalışamadım. Daha sonra, normal klasör yerine dosya yapısında yanlışlıkla modül oluşturduğumu ve bu modülün proje ayarında önceden seçildiğini öğrendim.

İşte ayak izi:

Dosya -> Proje Yapısı -> Modüller -> (daha fazlasına sahipseniz uygun modülü seçin) -> Bağımlılıklar -> + -> JAR veya Kütüphaneler


3

Önceki cevapları kabul ederken, bu harici kütüphanelerin kodlarına nasıl erişileceğini not etmek önemlidir.

Örneğin, harici kitaplıktaki bir sınıfa erişmek için içe aktarmayı kullanmak isteyeceksiniz anahtar sözcüğünü ve ardından harici kitaplığın adını kullanarak istediğiniz sınıfa ulaşılana kadar nokta gösterimi ile devam .

Quickfixj kütüphanesinden CodeGenerationException sınıfını nasıl içe aktardığımı görmek için aşağıdaki resme bakın .

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.