Wenn ich eine Hauptklasse in IDEA ausführen, setzt es das Modul und seine Abhängigkeiten auf einem Modulpfad. Ist es möglich, es in einen Klassenpfad zu ändern?Wie Java 9-Anwendung mit Klassenpfad statt Modulpfad in IDEA ausführen?
Antwort
Wenn Sie keine Modul-Info definieren, würde IDEA die Anwendung und Ihre Abhängigkeiten auf den Klassenpfad setzen. Da Sie eine Modul-Info haben, ist es ein explizites Modul, also muss es auf dem Modul-Pfad sein. Normalerweise würden Sie Ihre Abhängigkeiten jetzt als automatische Module behandeln.
Wie auch immer, Ihre Abhängigkeiten haben zumindest einen guten Grund, auf dem Klassenpfad zu sein. Wir haben das hier besprochen Why Java 9 does not simply turn all JARs on the class path into automatic modules?
Zum Beispiel hängt mein Modul von einem automatischen Modul ab, das jedoch ein Glas braucht, das noch kein automatisches Modul werden kann. Auf der Kommandozeile würde das so aussehen:
java -cp legacy.jar -p "mymodule.jar; automodule.jar;" -m mymodule/com.example.mymodule.Application
IMO intellij unterstützt das derzeit nicht. Als Workaround, um mindestens die gesamte Anwendung auf dem Klassenpfad auszuführen, könnten Sie die Modellinformationen für das Deaktivieren/Nicht-Jigsaw-Modul für einen Moment umbenennen.
- 1. Wie Standard-Bibliothek statt mit demselben Namen Modul in Modulpfad
- 2. IntelliJ IDEA/Scala: Konfigurationsfehler Ressourcen auf Klassenpfad ausführen
- 3. Java-Klasse in Gradle-Task mit benutzerdefiniertem Klassenpfad ausführen
- 4. falscher Klassenpfad und Parameter beim Ausführen von WebLogic in IntelliJ IDEA
- 5. IntelliJ Idea kann Java nicht ausführen Programm
- 6. Wie mvn Befehl mit IntelliJ IDEA ausführen?
- 7. Java-Programm auf Cygwin ausführen - Klassenpfad nicht gefunden
- 8. Java: Java-Befehl Klassenpfad Fehler
- 9. Einstellung Java-Klassenpfad in Linux?
- 10. Java-URL-Protokolle: Klassenpfad: /?
- 11. ClassNotFoundException mit ant's Java-Aufgabe und Klassenpfad
- 12. java - Maven Assembly Plugin Build jar mit Klassenpfad
- 13. XML-Dateien in Java-Klassenpfad nicht gefunden
- 14. JBoss: einschließlich Unterverzeichnisse in Modulpfad
- 15. Python os Modulpfad Funktionen
- 16. Intellij IDEA Java-Projekt durch .bat-Datei ausführen
- 17. IntelliJ IDEA kann TestingServer auf meinem Klassenpfad nicht finden
- 18. IntelliJ IDEA Fehler beim Ausführen der Anwendung
- 19. Wie finde ich den Nodejs-Modulpfad?
- 20. Wie ändere ich den Perl-Modulpfad dynamisch?
- 21. Wie Eingangspunkt von Java mit langen Klassenpfad zu bestimmen
- 22. JAR-Klassenpfad in UBUNTU hinzufügen
- 23. Bedeutung von "*:" in Java-Klassenpfad-Spezifikation
- 24. Klassenpfad in Jshell anzeigen
- 25. Ignite: FEHLER: Java-Klassenpfad ist leer
- 26. Java Klassenpfad mit Junit und Test-Klasse in einem Paket
- 27. Wie drucke ich den JAVA-Klassenpfad in Großbuchstaben?
- 28. Wie kann ich dem Klassenpfad intelliJ IDEA eine XML-Datei hinzufügen?
- 29. Wie legen Sie einen langen Java-Klassenpfad in Windows fest?
- 30. Klassenpfad-Platzhalter in @PropertySource
Ich verstand die Frage, dass er es vorzieht, das gesamte Projekt aus dem Klassenpfad zu führen. Warum? Wer weiß, vielleicht um Kompatibilität zu testen. Vielleicht, um Probleme mit Abhängigkeiten zu umgehen, die nicht in automatische Module umgewandelt werden können (z. B. weil sie ein Paket aufteilen). – Nicolai
Wahr, ich habe meine Antwort bearbeitet – Daniel
Ich glaube nicht, dass die Frage beantwortet wird - soweit ich sehen kann, bietet IntelliJ keine Option, um Klassenpfad anstelle des Modulpfades zu verwenden, wenn JDK9 verwendet wird. Und der Grund dafür? Praktisch ist das gesamte Java-Ökosystem mit Modulen inkompatibel - es gibt geteilte Pakete in allen wichtigen Open-Source-Projekten, ungültige Modulnamen (jedes Jar mit dem Wort native in ihm zum Beispiel, wie Netty, Cassandra usw.) überall. Das Arbeiten mit Modulen ist momentan ein harter Kampf, gegen den niemand kämpfen will. –