Starten Sie Eclipse-Projekt von der Kommandozeile aus
Ich bin mit zwei Problemen in Bezug auf kompilieren und ausführen eines Eclipse-java-Projekt, das von der Kommandozeile aus. Dies funktioniert gut, wenn ich bin nur mit der eclipse-IDE. Ich habe versucht zu googeln, konnte aber nicht wirklich die Sache arbeiten. Jede Hilfe wird sehr geschätzt.
Problem 1: Wenn ich versuche zu kompilieren, von einem anderen Ort aus dem Verzeichnis, wo die .java-Datei ist, es wirft den Fehler "nicht Lesen kann: myfile.java". Aber wenn ich die Migration auf dieses Verzeichnis wird dann kompiliert.
Der Befehl, den ich gab, ist (wenn Sie in ein anderes Verzeichnis):
javac -cp C:\ABC\src\XYZ myfile.java
Der Befehl, den ich gab, wenn im XYZ-Verzeichnis:
javac myfile.java
Diese generiert zwei .die class-Dateien myfile.class und Testing_Thread.class(ich vermute dies, weil ich einen thread in meinem code)
Problem 2: Nachdem ich zusammengestellt haben, gehen Sie zu Ihrem Verzeichnis, wenn ich versuche das Programm auszuführen, bekomme ich die Fehlermeldung "Exception in thread "main" java.lang.NoClassDefFoundError: myfile (falsche Namen: XYZ/myfile.java)" selbst wenn ich versuche zu laufen, von der XYZ-Verzeichnis. Ich bekomme die gleiche Fehlermeldung, wenn ich versuche zu laufen, von einem anderen Ort auch.
Der Befehl, den ich gab, wenn im XYZ-Verzeichnis:
java MeineDatei
Der Befehl, den ich gab, wenn Sie in einer anderen Stelle:
java -cp C:\ABC\src\XYZ myfile
Ich bin auch das anbringen einer Hierarchie von meiner Verzeichnis-Struktur, wenn es für Sie hilfreich:
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Beispiele gehen von folgenden Annahmen aus Quell-Struktur:
Wo D.java ist:
Das erste problem, nicht Lesen kann: myfile.java, ist, weil es ist nicht richtig zu verwenden Sie die
cp
Kommandozeilen-option, um auf Ihre source-code.Diese sollte stattdessen die folgende, wo
javac
ist laufen von Ihrem Quell-Ordner, und wir können relative Pfade zu den Quell-Dateien (HINWEIS -javac
aus dem source-Ordner hier):Oder so, wo wir geben Sie den vollständigen Pfade zu den Quelldateien, und
javac
ausgeführt werden können, von überall aus (HINWEIS -javac
ausC:\
hier):Beide der oben genannten Optionen wird das Ergebnis in Ihrer Klasse Dateien, die erstellt werden in dem gleichen Ordner wie die Quelle. I. e.:
Für das zweite problem, wenn Sie versuchen, und führen Sie eine Klasse, die eine Paket-name-von 'innen' das Paket, in diesem Fall wird der name falsch (HINWEIS -
java
ausführen von 'innen' das Paket hier):Laufen die
D
Klasse, sollte man auf das Paket "root", und liefern die Voll Qualifizierter Klassenname. I. e.:Hinweis: ich erhalte eine Ausnahme, wie die
D
- Klasse nicht über eine main-Methode und kann daher nicht ausgeführt werden. Zu beheben, fügen wir eine main-Methode:- und re-run: