Wie füge ich ein Verzeichnis zum Klassenpfad in einem Anwendungslaufprofil in IntelliJ IDEA hinzu?

206

Ich versuche, dem Klassenpfad eines Anwendungslaufprofils ein Verzeichnis hinzuzufügen

Wenn ich mit -cp x: target / classes in den VM-Einstellungen überschreibe, wird der folgende Fehler angezeigt:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain

Haben Sie eine Idee, wie Sie dem Klassenpfad für mein Projekt ein Verzeichnis hinzufügen können?

sal
quelle
1
Mir ist nicht klar, wo Sie das hinzufügen wollen. Von der IJ-Kommandozeile? Oder in den Projekteigenschaften?
Heiko Rupp
Siehe auch
AlikElzin-kilaka

Antworten:

270

In Intellij 13 sieht es wieder etwas anders aus. Hier sind die Anweisungen für Intellij 13:

  1. Klicken Sie auf die Projektansicht oder blenden Sie sie aus, indem Sie auf die Schaltfläche "1: Projekt" am linken Rand des Fensters klicken oder Alt + 1 drücken
  2. Suchen Sie Ihr Projekt oder Untermodul und klicken Sie darauf, um es hervorzuheben. Drücken Sie dann F4 oder klicken Sie mit der rechten Maustaste und wählen Sie "Moduleinstellungen öffnen" (auf IntelliJ 14 wurde es zu F12).
  3. Klicken Sie auf die Registerkarte Abhängigkeiten
  4. Klicken Sie rechts auf die Schaltfläche "+" und wählen Sie "Gläser oder Verzeichnisse ...".
  5. Suchen Sie Ihren Pfad und klicken Sie auf OK
  6. Wählen Sie im Dialogfeld mit "Kategorien der ausgewählten Datei auswählen" Classes(auch wenn es sich um Eigenschaften handelt), drücken Sie OK und erneut OK
  7. Sie können Ihre Anwendung jetzt ausführen und sie enthält den ausgewählten Pfad im Klassenpfad
stivlo
quelle
2
Wie würden Sie also Konfigurationen mit zwei verschiedenen Verzeichnissen ausführen, die ausschließlich in einem, aber nicht im anderen vorhanden sein müssen? In Eclipse können Sie einer Startkonfiguration alles hinzufügen / entfernen. Unterstützt IntelliJ dies nicht?
Καrτhικ
9
Es ist ziemlich klar , dass Sie Classpath von ändern können Laufzeitkonfiguration zu ändern Modul Classpath. Aber genaue Frage lautete : „Wie Verzeichnis in einer Anwendung Classpath hinzufügen Laufprofil “. Also wurde der Real von uaaquarius
Pavel Vyazankin
Danke ! Dies löste mein Problem nach Ewigkeiten des Suchens!
JonasCz
1
Schritt 6 kommt für mich nicht auf. Ich bin auf Intellij 14. Ich habe einen Ordner namens lib, in dem sich meine .jar befindet. Wenn Sie den Ordner oder das Glas auswählen, wird nur der Pfad in Intellij analysiert. funktioniert immer noch nicht
Takeru
@Takeru Hast du das herausgefunden?
Rosshamish
91

Es scheint, dass IntelliJ 11 die Methode geändert hat und die aktivierte Antwort für mich nicht mehr funktioniert. Falls jemand anderes über eine Suchmaschine hierher kommt, habe ich es in IntelliJ 11 folgendermaßen gelöst:

  1. Gehen Sie zur Projektstruktur, klicken Sie auf Module und dann auf Ihr Modul
  2. Wählen Sie die Registerkarte "Abhängigkeiten"
  3. Klicken Sie auf die Schaltfläche "+" auf der rechten Seite und wählen Sie "Gläser oder Verzeichnisse ...".
  4. Fügen Sie die gewünschten Verzeichnisse hinzu (beachten Sie, dass Sie mehrere auswählen können) und klicken Sie auf OK
  5. Wählen Sie im daraufhin angezeigten Dialogfeld "Klassen" und NICHT "JAR-Verzeichnis" aus.
  6. Stellen Sie sicher, dass Sie dieses Modul in Ihrem Ausführungsziel verwenden

Beachten Sie, dass Schritt 5 der Hauptunterschied zu sein scheint. Wenn Sie "JAR-Verzeichnis" auswählen, sieht es in der IDE genauso aus, enthält jedoch zur Laufzeit nicht den Pfad. Es scheint keine Möglichkeit zu geben, festzustellen, ob Sie zuvor "Klassen" oder "JAR-Verzeichnis" ausgewählt haben.

Samkass
quelle
4
Vielen Dank für die Veröffentlichung. Du hast mir gerade eine Stunde oder so gespart.
John Jiang
Ich habe das gleiche Problem wie zuvor mit IJ11 und war froh, diesmal eine Antwort auf mich zu finden.
Sal
Perfekt. Gleicher Prozess für IJ12. Beim Versuch, 'java.lang.ClassNotFoundException: com / microsoft / jdbc / sqlserver / SQLServerDriver' zu beheben, ist dieser Beitrag aufgetreten. Dadurch wurde das Verbindungsproblem behoben. Danke
jkmurphy1
6
Ich verstehe Schritt 5 nicht :( Der Dialog wird einfach nicht angezeigt.
Charles Wood
1
@CharlesWood: Als ich zwei Ordner auswählen wollte, von denen einer Unterordner enthält. Ich musste den Ordner mit den Unterordnern über das kleine Pfeilsymbol neben dem Ordnernamen erweitern, damit der Dialog angezeigt wurde. Andernfalls wird der Dialog übersprungen.
Timo Reimann
35

Sie können die Option -Xbootclasspath / a: path des Java Application Launcher ausprobieren . In der Beschreibung wird "ein durch Doppelpunkte getrennter Pfad von Verzeichnissen, JAR-Archiven und ZIP-Archiven angegeben, die an den Standardpfad der Bootstrap-Klasse angehängt werden sollen".

uaaquarius
quelle
2
Einige Dokumentationen zur Funktionsweise von -Xbootclasspath: docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570
Lambart
3
Dies ist eine gute Antwort, da Sie Ihre Projektkonfiguration nicht ändern müssen. Tatsächlich denke ich, dass es die Frage am besten beantwortet.
Chewy
1
Dies hat bei mir leider nicht funktioniert, da dies dazu führt, dass alle aus diesem Klassenpfad geladenen Klassen vom Bootstrap-Klassenladeprogramm geladen werden, wodurch Code gebrochen wird, der davon ausgeht, dass Xyz.class.getClassLoader () nicht null ist.
Njol
@uaaquarius, Warum gibt es keine Möglichkeit, die Befehlszeilenzeichenfolge direkt zu bearbeiten? Das ist frustrierend.
Pacerier
@uaaquarius, warum funktioniert es, wenn ich mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jarmit der anderen Methode unter stackoverflow.com/a/16742141/632951 als Abhängigkeit hinzufüge, aber wenn ich -Xbootclasspath/aes nicht benutze ?
Pacerier
19

Ich verwende Idea 8. auf der Registerkarte Modulabhängigkeiten (im Dialogfeld Projektstruktur). Fügen Sie eine "Modulbibliothek" hinzu. Dort können Sie ein Jar-Verzeichnis zum Hinzufügen auswählen. Stellen Sie dann sicher, dass das Ausführungsprofil beim Ausführen den Klassenpfad und das JDK des richtigen Moduls verwendet (dies befindet sich im Dialogfeld Ausführungskonfiguration.

Mike Pone
quelle
11

Stellen Sie "VM-Optionen" wie folgt ein: "-cp $ Classpath $; your_classpath"

VM-Optionen

zoirs
quelle
Das hat mir den Tag gerettet.
Bruno Ranschaert
2

Angenommen, Sie benötigen nur x: target / classes in Ihrem Klassenpfad. Dann fügen Sie diesen Ordner einfach Ihrem Klassenpfad und% IDEA% \ lib \ idea_rt.jar hinzu. Jetzt wird es funktionieren. Das ist es.

Oleksandr Bondarenko
quelle
4
Die Frage ist, wie Sie diesen Ordner Ihrem Klassenpfad in IDEA hinzufügen können.
Pacerier
0

Sie müssen den Klassenordner nicht angeben. Intellij sollte es laden können. Sie erhalten diesen Fehler, wenn "Project Compiler-Ausgabe" leer ist.

Stellen Sie einfach sicher, dass der folgende Wert festgelegt ist: Projekteinstellungen -> Projekt -> Projekt-Compiler-Ausgabe in Ihren projectDir / out- Ordner

VNN456
quelle