Classpath Compiler lässt sich nur bedingt von Kommandozeile aus starten

CodeCrack

Mitglied
Ich habe zuletzt immer Code mit eclipse compiliert und ausgeführt und jetzt wollte ich mal auf die Kommandozeile von Windows gehen.

Das geht:
javac C:\Andreas\Programmierung\Java\eclipse\project\src\pro\Demo.java

Aber das geht nicht:
javac -cp C:\Andreas\Programmierung\Java\eclipse\project\src pro.Demo.java

Und das geht auch nicht:
javac Andreas\Programmierung\Java\eclipse\project\src pro.Demo.java

Warum nicht?
 

CodeCrack

Mitglied
Jup, soll das Packege sein. Ich habe oben einen Fehler. Die 3. Anweisung sollte auch mit "-cp" sein. Somit ist das mit dem Punkt beim Package korrekt.
 

CodeCrack

Mitglied
Das vollständige Kommando sollte eigentlich so lauten:
javac -cp Andreas\Programmierung\Java\eclipse\project\src pro.Demo.java

Meines Wissens, wird der Klasse das Package, mit Punkt getrennt, angegeben. Ist das falsch?
 

mrBrown

Super-Moderator
Mitarbeiter
Das vollständige Kommando sollte eigentlich so lauten:
javac -cp Andreas\Programmierung\Java\eclipse\project\src pro.Demo.java

"Andreas\" ist in dem Fall allerdings ein relativer Pfad und damit je nach aktuellem Arbeitsverzeichnis ein völlig anderer als "C:\Andreas" - was bei dir grad richtig ist, wäre nur raten ;)

Meines Wissens, wird der Klasse das Package, mit Punkt getrennt, angegeben. Ist das falsch?
In dem Fall gibt man (afaik) den Pfad zur Datei und nicht das Package an, von daher nicht mit '.' sondern '/' bzw '\'.
 

CodeCrack

Mitglied
Ok, mit den absoluten und den relativen Pfaden, das habe ich verstanden. Ohne -cp klappt auch beides. Jetzt sagt mir nochmal, woraus muss die cp-Angabe bestehen, allgemein und wenn ihr es konkret machen wollte, geht von folgendem absoluten Pfad aus: C:\Andreas\Programmierung\Java\eclipse\project\src\pro\Demo.java
 

CodeCrack

Mitglied
Also entweder stimmt deine Angabe nicht, oder mit meinem Setup stimmt etwas nicht. Es funktioniert so jedenfalls nicht. Aber immerhin klappte es - wie oben angegeben - ohne -cp.
 

Neumi5694

Top Contributor
Das kann auch nicht funktionieren.
javac sucht Dateien entweder vom aktuellen Pfad aus (bei relativer Angabe), oder benötigt einen absoluten Pfad für die zu kompilierende Klasse
-cp beeinflusst NICHT den Ort, an dem der Code gesucht wird.

Sagen wir, du befindest dich in "c:\dist"
Dann sucht dieser Befehl:
javac -cp "C:\Andreas\Programmierung\Java\eclipse\project\src" pro\Demo.java
nach c:\dist\pro\Demo.java

CP ist nur dazu da, um Resourcen zu finden, die du zum Kompilieren der Klasse pro.Demo benötigst (wenn pro.Demo also auf andere Klassen verweist).
Wenn du dich nicht in einem Parent-Verzeichnis deiner Source-Datei befindest, brauchst du immer absolute Pfade.

Geh das Ganze mal so an:
c:\
cd "C:\Andreas\Programmierung\Java\eclipse\project\src"
javac -cp .;c:\hier_liegen_resourcen -d "c:\hier_soll_der_schmuh_hin\dist" pro\Demo.java
 
Zuletzt bearbeitet:

CodeCrack

Mitglied
Das geht leider auch nicht. Immer derselbe Fehler, egal, was ich mache: "javac: no source files", es sei denn, ich lasse die "-cp"-Angabe weg, wie oben dargestellt. :( Btw., ist das mit ".;c:" korrekt oder ein Schreibfehler von dir?
 

Neumi5694

Top Contributor
Tu mir mal einen Gefallen und poste einen Screenshot der Kommandozeile, wenn du das machst.
Das klingt ganz danach, als ob du immer noch im falschen Ordner wärst.
Und poste außerdem (mit entsprechenden Tags) deine Demo-Klasse.

Und nein, das war kein Schreibfehler, der Klassenpfad kann ja mehrere Verzeichnisse enthalten, getrennt durch Semikolon.
In diesem Fall wären das
1. "." (aktuelles Verzeichnis) und
2. "c:\hier_liegen_resourcen" (Das war ein Beispielaufruf, ersetze das durch was immer du willst)
Dass man - falls Leerzeichen vorhanden sind - vorne und hinten mit Anführungszeichen umschließen muss, versteht sich von selbst, selbiges gilt für alle anderen Dateipfadangaben.
 

CodeCrack

Mitglied
v5fp64s4.png

Wie ihr seht: Der erste Aufruf (ohne -cp) klappt, die drei anderen Varianten nicht.
 

mrBrown

Super-Moderator
Mitarbeiter
Wie ihr seht: Der erste Aufruf (ohne -cp) klappt, die drei anderen Varianten nicht.
Du machst auch nicht das, was @Neumi5694 beschrieben hat:

Geh das Ganze mal so an:
c:\
cd "C:\Andreas\Programmierung\Java\eclipse\project\src"
javac -cp .;c:\hier_liegen_resourcen -d "c:\hier_soll_der_schmuh_hin\dist" pro\Demo.java


Was dir fehlt ist das wechseln in den Source-Ordner (cd "C:\Andreas\Programmierung\Java\eclipse\project\src")
 

Neumi5694

Top Contributor
Variante 2 sollte funktionieren, sobald du dich beim aufruf von javac im src-Ordner befindest (sofern meine Annahme stimmt und die Klasse "Demo" im Package "pro" liegt, Code liegt uns leider noch keiner vor).
Variante 3 wird garantiert nie funktionieren, da es keine Datei namens ".\pro.Demo.java" gibt.

Bei meiner "probier's mal so" Anleitung steht noch ein Fehler drin. Ich habe als erstes "c:\" genannt, hier sollte aber "c:" stehen. Das ist aber unerheblich, da du dich eh schon auf dem richtigen Laufwerk befindest.
 

CodeCrack

Mitglied
Ich habe es jetzt noch nicht probiert, vermute aber, ihr habt Recht und eure Variante wird dann funktionieren.

Was soll das denn?! Wozu brauche ich denn dann die "-cp"-Angabe, wenn ich mich eh im src-Verzeichnis befinde?! Das -cp ist für die class-Dateien, schon klar, aber irgendwie ist das trotzdem sinnlos, da der Ordner mit den class-Dateien ja ein, ich nenne es mal Parallel-Ordner des src-Ordners, ist.
 

Neumi5694

Top Contributor
CP ist das wichtigste überhaupt, wenn du nicht alles selbst programmieren willst :)
Als praktisches Beispiel denk mal an einen JDBC-Datenbanktreiber. Damit dein Programm die darin enthaltenen Methoden und Klassen zugreifen kann, bzw. der Compiler sie findet, musst du mit -cp auf die entsprechenden Jar-Dateien oder src-Verzeichnisse verweisen.

Es gibt dann noch den sourcepath, mit dem du auf andere Sourcen verweisen kannst.
Aber auch hier gilt, dass die DATEI, auf die du beim Compiler-Aufruft verweist, direkt verfügbar sein muss.
Letztendlich kannst du beim Build noch das Ziel-Verzeichnis angeben.

Die normale Vorgehensweise ist diese:
1. Beim Kompilieren solltest du dich im Source-Verzeichnis befinden.
2. Auf eingebundene Libraries / Jars verweist du mit -cp
3. Als letztes gib noch ein Zielverzeichnis an, damit deine .class-Dateien nicht im Source-Ordner landen.
4. Erzeuge eine Auflistung aller Java-Dateien im Ordner und dessen Unterordnern und kompilierre sie mit for-each. Der Compiler wird Abhängigkeiten erkennen und doppeltes Kompilieren verhindern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
N Compiler-Fehler State Machine - Compiler Error Java Basics - Anfänger-Themen 48
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
B Nicht reproduzierbarer Fehler bei Kompilierung - Shortcut "Bereinigung" Compiler ? Java Basics - Anfänger-Themen 4
Gaudimagspam Compiler Error Java Basics - Anfänger-Themen 3
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
D Warum Compiler das nicht Java Basics - Anfänger-Themen 6
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
V Komplizierte Compiler Fehlermeldungen Java Basics - Anfänger-Themen 7
B Compiler -> unendliche Schleife (StringBuffer?) Warum? Java Basics - Anfänger-Themen 2
B Java Compiler Fehler Java Basics - Anfänger-Themen 7
R Compiler-Fehler Java Compiler Unterschiede Java Basics - Anfänger-Themen 10
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
L Compiler funktioniert nicht Java Basics - Anfänger-Themen 2
M Erste Schritte Erstes Programm mit Compiler öffnen Java Basics - Anfänger-Themen 4
K Enigma compiler Fehler Java Basics - Anfänger-Themen 4
K Compiler-Fehler Enigma compiler Fehler Java Basics - Anfänger-Themen 5
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
W Compiler-Fehler Compiler Fehler Java Basics - Anfänger-Themen 9
K Arraylist - Compiler Fehler Java Basics - Anfänger-Themen 3
S Logging Code komplett von Compiler entfernen lassen..? Java Basics - Anfänger-Themen 5
J Compiler-Fehler Cmd startet compiler Java Basics - Anfänger-Themen 1
Z Java Compiler will nicht mehr Java Basics - Anfänger-Themen 3
J Compiler Fehler Java Basics - Anfänger-Themen 5
K Compiler-Fehler Probleme mit dem Compiler Java Basics - Anfänger-Themen 10
R Java HotSpot Compiler Java Basics - Anfänger-Themen 6
J Java Basics Frage Compiler etc Java Basics - Anfänger-Themen 12
J Compiler-Fehler Verständnis Problem bei Compiler-Warning Java Basics - Anfänger-Themen 7
F Compiler Probleme Java Basics - Anfänger-Themen 7
D [jni] compiler error Java Basics - Anfänger-Themen 2
J Compiler findet method nicht Java Basics - Anfänger-Themen 12
E Compiler Java Basics - Anfänger-Themen 9
I Suche Compiler in Java SDK Java Basics - Anfänger-Themen 5
D Classpath compiler zur Laufzeit aufrufen & lib-classpath Java Basics - Anfänger-Themen 6
S Compiler-Fehler see the compiler error output Java Basics - Anfänger-Themen 6
E Verwirrender Compiler Fehler!? Java Basics - Anfänger-Themen 3
Dit_ Compiler-Fehler Stringvariable ändern | Compiler warnung Java Basics - Anfänger-Themen 25
J Mac OS X - javac - Compiler Probleme Java Basics - Anfänger-Themen 2
M Compiler-Fehler instanceof compiler-error Java Basics - Anfänger-Themen 2
M JDK installieren Compiler Version Java Basics - Anfänger-Themen 4
pindakaas Compiler geht nicht (Dekorator Muster) Java Basics - Anfänger-Themen 18
S compiler auf 6.0 stellen Java Basics - Anfänger-Themen 6
L laut Compiler fehlt der Methodenkörper Java Basics - Anfänger-Themen 2
N Compiler findet array in gleicher methode nicht Java Basics - Anfänger-Themen 4
R Automatischer Compiler? Java Basics - Anfänger-Themen 4
H TreeMap Rückgabe - Compiler-Warnings Java Basics - Anfänger-Themen 9
C Hat jemand Ahnung zum GCJ(Gnu Compiler for Java) Java Basics - Anfänger-Themen 7
Luk10 Frage zu Compiler-Einstellung Java Basics - Anfänger-Themen 12
B Compiler funzt nicht. Java Basics - Anfänger-Themen 12
A SocketServer und Ahead-Of-Time-Compiler Java Basics - Anfänger-Themen 18
P JAVA Compiler (Javac) Java Basics - Anfänger-Themen 4
M Compiler-Fehler Java Basics - Anfänger-Themen 11
Mike90 Java Compiler funzt nicht Java Basics - Anfänger-Themen 11
J Java Compiler will nicht in der Kommandozeile Java Basics - Anfänger-Themen 5
A Compiler kann das exceptionElement nicht finden Java Basics - Anfänger-Themen 10
M Unterschied zwischen . Compiler und JIT-Compiler,Hotspot-VM Java Basics - Anfänger-Themen 2
M einfache frage zum Jdk-Compiler Java Basics - Anfänger-Themen 3
A compiler gibt nichts aus Java Basics - Anfänger-Themen 12
D JDK Compiler Java Basics - Anfänger-Themen 4
B Fragen zu threads, swing, und dem bytecode compiler, etc. Java Basics - Anfänger-Themen 4
K Warum akzeptiert der Compiler mein Objekt nicht ? Java Basics - Anfänger-Themen 3
F Compiler für mac os x 10.4 Java Basics - Anfänger-Themen 5
S compiler warning Java Basics - Anfänger-Themen 2
A Java error message Was will der Compiler von mir? Java Basics - Anfänger-Themen 6
K Compiler Problem Java Basics - Anfänger-Themen 3
J compiler funktioniert nicht Java Basics - Anfänger-Themen 8
I Compiler ignoriert setSize, setPreferredSize, etc. Java Basics - Anfänger-Themen 14
G jaxb compiler Java Basics - Anfänger-Themen 2
E Compiler-Befehl zum "nicht beachten" von Code Java Basics - Anfänger-Themen 10
B Anfänger mit Compiler-problemen Java Basics - Anfänger-Themen 20
S was passt dem compiler nicht? Java Basics - Anfänger-Themen 2
I Probleme mit Pfad zum Compiler Java Basics - Anfänger-Themen 8
D [DONE] JDK Installation: Compiler macht Probleme. Java Basics - Anfänger-Themen 3
M Compiler findet main nicht Java Basics - Anfänger-Themen 4
O Compiler-Fehler im Bezug auf Klasse Java Basics - Anfänger-Themen 5
G compiler Java Basics - Anfänger-Themen 16
C Compiler-Fehler Java Basics - Anfänger-Themen 6
S Java Compiler? oder doch der Code? Java Basics - Anfänger-Themen 6
padde479 Compiler-Frage: Was bedeutet deprecated? Java Basics - Anfänger-Themen 4
C Nach Installation kein Java-Compiler Java Basics - Anfänger-Themen 7
R Java verstanden, Compiler nicht Java Basics - Anfänger-Themen 6
M Frage zu Java Compiler Java Basics - Anfänger-Themen 3
A Ant Problem: Unable to find a javac compiler; Java Basics - Anfänger-Themen 4
B Aus Datei Lesen -> Compiler fehler Java Basics - Anfänger-Themen 6
B Compiler Fehler "{" expected, kann doch nich sein? Java Basics - Anfänger-Themen 9
M kostenloser Java-Compiler? Java Basics - Anfänger-Themen 6
D Was für einen compiler empfehlt ihr? Java Basics - Anfänger-Themen 12
F Compiler-Fehlermeldung LINUX Java Basics - Anfänger-Themen 9
C Compiler-Fehler - bitte um Hilfe Java Basics - Anfänger-Themen 20
H Java-Compiler Java Basics - Anfänger-Themen 5
T System.out.println - Compiler-Fehler Java Basics - Anfänger-Themen 22
C Compiler läuft nicht Java Basics - Anfänger-Themen 6
G Compiler hängt schon wieder Java Basics - Anfänger-Themen 14
E jit-compiler Java Basics - Anfänger-Themen 5
G Windows optimierter Compiler? Java Basics - Anfänger-Themen 5
J suche guten Java-Compiler! Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben