Richtige Methode zum Hinzufügen externer Jars (lib / *. Jar) zu einem IntelliJ IDEA-Projekt

734

Beim Erstellen eines neuen Java-Projekts in IntelliJ IDEA werden die folgenden Verzeichnisse und Dateien erstellt:

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

Ich möchte IntelliJ IDEA so konfigurieren, dass meine Abhängigkeits-JARs in ./lib/*.jardas Projekt aufgenommen werden. Was ist der richtige Weg, um dies in IntelliJ IDEA zu erreichen?

knorv
quelle
Ich bin mit dem Problem konfrontiert, während ich das Programm im Terminal in IntelliJ ausführe. Ich habe die import-Anweisung verwendet, um die Klassen zu verwenden, die ich im Programm benötige. Während ich es in der IDE ausführe, läuft es einwandfrei. Wenn ich jedoch versuche, über die Befehlszeile% javac MyProgram.java zu kompilieren, wird der Fehler angezeigt: Symbol kann nicht gefunden werden
don_Gunner94

Antworten:

1306

Schritte zum Hinzufügen externer Gläser in IntelliJ IDEA:

  1. Klicken Sie Filein der Symbolleiste auf
  2. Projektstruktur ( CTRL+ SHIFT+ ALT+ Sunter Windows / Linux, + ;unter Mac OS X)
  3. Wählen Sie im linken Bereich Module aus
  4. Registerkarte "Abhängigkeiten"
  5. '+' → JARs oder Verzeichnisse
Kambium
quelle
99
Erwägen Sie außerdem, einen lib-Ordner hinzuzufügen, und verwenden Sie "Jar-Verzeichnisse anhängen", um alle Jars im lib-Ordner hinzuzufügen. Für ein größeres Projekt müssen Sie also nicht jedes Glas einzeln auswählen.
joeslice
16
Zum späteren Nachschlagen: Diese Schaltfläche "Hinzufügen" befand sich am rechten Rand des Fensters, und ich habe übermäßig viel Zeit damit verbracht, danach zu suchen, bevor ich diesen Beitrag gefunden und überlegt habe, die Größe des Fensters zu ändern. (Dies war unter OSX 10.6.5 ...)
Daniel Dickison
7
@joeslice, das funktioniert nur, wenn sich die JARs im Verzeichnisstamm befinden, oder? Es scheint nicht für JARs in Unterverzeichnissen in 'lib' zu funktionieren.
Opyate
6
In IJIdea 13 gibt es "+"> anstelle von "add".
Val
4
Ich benutze IDEA 14.0.2. Anstelle von Hinzufügen gibt es ein + Symbol. Nach dem Klicken auf + gibt es 3 Optionen: 1. JARs oder Verzeichnisse 2. Bibliothek ... 3. Modulabhängigkeit ...
Ripon Al Wasim
239

IntelliJ IDEA 15 & 2016

  1. Datei > Projektstruktur ...

    Datei> Projektstruktur

    oder drücken Sie Ctrl+ Alt+ Shift+S

  2. Projekteinstellungen > Module > Abhängigkeiten > " + " - Zeichen> JARs oder Verzeichnisse ...

    Module> Abhängigkeiten> JAR oder Verzeichnisse

  3. Wählen Sie die JAR-Datei aus und klicken Sie auf OK. Klicken Sie dann zur Bestätigung auf eine andere OK-Schaltfläche

    Geben Sie hier die Bildbeschreibung ein

    Geben Sie hier die Bildbeschreibung ein

  4. Sie können die JAR-Datei im Ordner "Externe Bibliotheken" anzeigen

    Geben Sie hier die Bildbeschreibung ein

ROMANIA_engineer
quelle
Ich erstelle tatsächlich ein neues Modul im Bereich "Module" (zum Beispiel "JarsForLogging"), füge dann alle benötigten Jars (in einem Verzeichnis weit weg vom Projektbaum) zu diesem neuen Modul hinzu und markiere die Jars als " Export". Schließlich füge ich das neu erstellte Modul zu den Abhängigkeiten des ursprünglichen Moduls hinzu. Auf diese Weise etwas hierarchischer.
David Tonhofer
Außerdem: Stellen Sie sicher, dass die Dateisystemberechtigungen für die .jarDateien richtig eingestellt sind . Verwenden Sie chmoddiese Option , um sie unter Linux oder MacOS zu ändern.
JJD
4
funktioniert noch im Jahr 2018 (Jahr und IntelliJ-Version). Vielen Dank. Auf diese Weise kann ich Armed Bear Common Lisp-Bibliotheken aus IntelliJ heraus laden und verwenden, großartig!
Jason Robinson
Ja. Funktioniert auch gut mit meinem IntelliJ. Vielen Dank!
Bms Bharadwaj
1
@ don_Gunner94, über die Befehlszeile sollten Sie das Glas auch wie javac -cp ".:/my/path/file.jar;" MyProgram.java
folgt
118

Kopieren Sie einfach die .jar-Datei in den Ordner "libs" (oder den gesamten Ordner "libs"), klicken Sie mit der rechten Maustaste darauf und wählen Sie die Option "Als Bibliothek hinzufügen" aus der Liste. Es wird den Rest erledigen ...

Geben Sie hier die Bildbeschreibung ein

Gurkan
quelle
Am einfachsten und wie wir es seit Eclipse gewohnt sind.
Sufian
3
Schlicht und einfach!!
Anaximandro Andrade
3
Irgendwie nervt es dann immer noch nach einem "Namen". Kannst du einfach irgendeinen Müll drin lassen?
Dividebyzero
Das hat mir auch geholfen!
Preeti Joshi
Ich bin mit dem Problem konfrontiert, während ich das Programm im Terminal in IntelliJ ausführe. Ich habe die import-Anweisung verwendet, um die Klassen zu verwenden, die ich im Programm benötige. Während ich es in der IDE ausführe, läuft es einwandfrei. Wenn ich jedoch versuche, über die Befehlszeile% javac MyProgram.java zu kompilieren, wird der Fehler angezeigt: Symbol kann nicht gefunden werden. - -
don_Gunner94
20

Sie fügen sie Ihrem Modul als Bibliotheken hinzu.

Normalerweise habe ich ein /libVerzeichnis in meiner Quelle. Ich lege dort alle benötigten JARs ab, füge / lib als Bibliothek hinzu und mache es zu einem Teil meiner Modulabhängigkeiten.

Update 2018: Ich verwende jetzt IntelliJ 2017/2018.

Ich bin Maven und Nexus für das Abhängigkeitsmanagement voll verpflichtet.

So ist die Welt gegangen. Jedes mir bekannte Open Source Java-Projekt verwendet Maven oder Gradle. Du solltest auch.

Duffymo
quelle
Ja, aber was ist, wenn der Maven Pom nicht pom.xml heißt? Dann kann ich Maven-Abhängigkeiten anscheinend nicht lesen.
user1001630
4
Konvention ist es, es pom.xml zu nennen. Befolgen Sie die Konvention und benennen Sie Ihre Datei um.
Duffymo
Ich finde immer noch die Notwendigkeit, wenn das Glas kein Maven Repo hat ... aber ich verstehe nicht, wie man das richtig macht. Ich verstehe, wie man ein Verzeichnis hinzufügt, ich verstehe nur nicht, wie man es bekommt, es importiert auch die Javadocs. Es funktioniert, wenn ich ein JAR als einzelne Datei hinzufüge, aber nicht, wenn ich ein Verzeichnis hinzufüge. Ist das einfach nicht möglich?
ycomp
Dies ist ein guter Rat. Das manuelle Hinzufügen von Gläsern ist zeitaufwändig und fehleranfällig. Ihre Abhängigkeiten sollten immer "über Code" konfiguriert werden, im pom.xml(für Maven) oder was auch immer das Äquivalent für Gradle ist.
Wikingersteve
1
Alle JARs haben ein Repo. Wenn es in einem öffentlichen oder privaten Repo nicht verfügbar ist, können Sie es manuell in Ihrer lokalen .m2 installieren. Es gibt keinen Grund, etwas anderes zu tun.
Duffymo
17

Wenn Sie Ihr Projekt mit gradle erstellen, müssen Sie nur eine Zeile zu den Abhängigkeiten in build.gradle hinzufügen:

buildscript {
    ...
}
...

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

und fügen Sie dann den Ordner Ihrem Stammprojekt oder Modul hinzu:

Geben Sie hier die Bildbeschreibung ein

Dann lässt du deine Gläser da rein und los geht's :-)

cesards
quelle
Ich bin mit dem Problem konfrontiert, während ich das Programm im Terminal in IntelliJ ausführe. Ich habe die import-Anweisung verwendet, um die Klassen zu verwenden, die ich im Programm benötige. Während ich es in der IDE ausführe, läuft es einwandfrei. Wenn ich jedoch versuche, über die Befehlszeile% javac MyProgram.java zu kompilieren, wird der Fehler angezeigt: Symbol kann nicht gefunden werden. -
don_Gunner94
7

Ich benutze diese Methode und es funktioniert gut:

1- Kopieren Sie die .jarDateien und fügen Sie sie in den libsOrdner ein.

2- hinzufügen compile fileTree(dir: 'libs', include: '*.jar')zu dependenciesin build.gradledann alle Gläser in den libswird Ordner enthalten sein ..

3- Klicken Sie mit der rechten Maustaste auf den libsOrdner und wählen Sie die Option "Als Bibliothek hinzufügen" aus der Liste.

Ali Hesari
quelle
Danke, das war das einzige, was für mich funktioniert hat!
Gregordy
Ich bin mit dem Problem konfrontiert, während ich das Programm im Terminal in IntelliJ ausführe. Ich habe die import-Anweisung verwendet, um die Klassen zu verwenden, die ich im Programm benötige. Während ich es in der IDE ausführe, läuft es einwandfrei. Wenn ich jedoch versuche, über die Befehlszeile% javac MyProgram.java zu kompilieren, wird der Fehler angezeigt: Symbol kann nicht gefunden werden.
don_Gunner94
5

Bibliotheken können in keinem Programm direkt verwendet werden, wenn sie nicht ordnungsgemäß zu den Projektgradle-Dateien hinzugefügt wurden.

Dies kann leicht in intelligenten IDEs wie inteli J durchgeführt werden.

1) Fügen Sie zunächst als Konvention einen Ordnernamen 'libs' unter Ihrer Projekt-src-Datei hinzu. (Dies kann einfach mit der IDE selbst durchgeführt werden)

2) Kopieren Sie dann Ihre Bibliotheksdatei (z. B. JAR-Datei) oder fügen Sie sie in den Ordner "libs" ein.

3) Jetzt können Sie die Bibliotheksdatei im Ordner libs sehen. Klicken Sie nun mit der rechten Maustaste auf die Datei und wählen Sie "Als Bibliothek hinzufügen". Dadurch werden alle relevanten Dateien in Ihrem Programm repariert, und die Bibliothek steht Ihnen direkt zur Verfügung.

Bitte beachten Sie:

Stellen Sie beim Hinzufügen von Bibliotheken zu einem Projekt sicher, dass das Projekt die Bibliothek unterstützt

Keet Sugathadasa
quelle
3

Einige große Hilfe hier gefunden. Ich konnte es jedoch immer noch nicht zum Laufen bringen, obwohl ich JAR richtig geladen hatte. Ich habe später herausgefunden, dass ich versehentlich ein Modul in der Dateistruktur anstelle eines regulären Ordners erstellt habe und genau dieses Modul in der Projekteinstellung vorgewählt wurde.

Hier ist der Fußabdruck:

Datei -> Projektstruktur -> Module -> (wählen Sie das richtige Modul aus, wenn Sie mehr haben) -> Abhängigkeiten -> + -> JAR oder Bibliotheken

Rolland
quelle
3

Obwohl ich den vorherigen Antworten zustimme, ist es wichtig zu beachten, wie auf den Code dieser externen Bibliotheken zugegriffen werden kann.

Um beispielsweise auf eine Klasse in der externen Bibliothek zuzugreifen, sollten Sie das Schlüsselwort import gefolgt vom Namen der externen Bibliothek verwenden und mit der Punktnotation fortfahren, bis die gewünschte Klasse erreicht ist.

Sehen Sie sich das Bild unten an, um zu sehen, wie ich die CodeGenerationException- Klasse aus der Quickfixj-Bibliothek importiere.

Geben Sie hier die Bildbeschreibung ein

Crt
quelle