Wie kann Wildcard JAR-Dateien beim Kompilieren enthalten?
Habe ich Folgendes in einer java-Datei (MyRtmpClient.java):
import org.apache.mina.common.ByteBuffer;
sowie ByteBuffer
innerhalb einer JAR-Datei (mit der richtigen directory Struktur natürlich).
, Jar-Datei und andere, die ich brauchen, sind in das gleiche Verzeichnis wie die .java-Datei.
Dann compiliere ich mit der Zeile:
javac -cp ".;*.jar" MyRtmpClient.java
Aber ich bekomme die Fehlermeldung:
MyRtmpClient.java:3: package org.apache.mina.common does not exist
import org.apache.mina.common.ByteBuffer;
Wie kann ich jar-Dateien in mein Projekt?
InformationsquelleAutor der Frage | 2009-06-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
deine Befehlszeile ist korrekt, aber es gibt einige überlegungen:
Ich gehe davon aus, dass die JAR-Datei muss die richtige Verzeichnisstruktur, wie Sie erklärte.
InformationsquelleAutor der Antwort cd1
javac nicht verstehen *.jar in den classpath argument. Sie müssen explizit angeben, in jedes Glas. z.B.
InformationsquelleAutor der Antwort Mark
In deinem Fall, denke ich, dass JAVAC nicht gefunden Gläser-Datei.
Bitte versuchen:
PROJECT_PATH
- lib\a.jar
- src\package\b.java
InformationsquelleAutor der Antwort thanhduyspkt
Javac In JDK 6 oder höher, die Sie nutzen könnten (Hinweis fehlen .jar):
zitieren javac - Java programming language compiler
InformationsquelleAutor der Antwort Maciej Matys
Wenn Sie Dienstprogramme
find
undtr
zur Verfügung (z.B. Sie arbeiten, Linux), können Sie Folgendes tun:Alle jar Dateien im aktuellen Verzeichnis und alle sub-Verzeichnisse Hinzugefügt werden (shell-Befehl listet alle jar Dateien und setzt Doppelpunkte als Trennzeichen zwischen Ihnen).
Erklärung:
find * -name "*.jar"
findet und listet alle jar Dateien in der Hierarchie, dessen Wurzel der aktuelle Ordner,find
der Eingabe der nächste Befehl,tr "\n" ":"
ersetzt alle newline Zeichen mit Doppelpunkt Zeichen.InformationsquelleAutor der Antwort plesiv
Wahrscheinlich die folgende syntax funktioniert auf windows-dos-Befehl
InformationsquelleAutor der Antwort shashank
In Java 8, die option ".;*" etc. die oben genannten sind die offenbar nicht zu arbeiten. Ich habe versucht, und gefunden, dass :
javac -cp '<location of jars>/*' MyRtmpClient.java
funktioniert:
<location of jar>
werden kann /usr/local/classes/* oder /home/developer/MyProject/*InformationsquelleAutor der Antwort Ankush
einschließlich versuchen die jar-Datei in der command line so :
javac MyRtmpClient.java ByteBuffer.jar
InformationsquelleAutor der Antwort blispr
Können Sie nicht verwenden
-cp
mit Javac. Verwenden Sie-classpath
statt (vorausgesetzt, die anderen Einstellungen richtig sind).InformationsquelleAutor der Antwort Rewinna