2016-04-05 16 views
0

ich die folgende Dateistruktur für ein Java-Projekt habe ich gearbeitet habe:Java Classpath unter Windows mit benutzerdefinierten Paketen

Klassen/X/Y/Z/

Innen X/Y/Z und/sind meine .java-Datei für verschiedene Teile des Projekts. Sie sind jeweils zusammen verpackt. Wenn ich alles zusammen zu kompilieren, ich alle meine .class Dateien in den Klassen/Verzeichnis mit diesem Befehl senden:

javac -cp classes/jsoup-1.8.3.jar -d ./classes/ X/*.java Y/*.java Z/*.java 

Dies kompiliert ganz gut (ich die JSoup JAR-Datei in das Verzeichnis classes vor diesem gestellt hatte) . In Z/befindet sich ein Main.java mit einem entsprechend deklarierten public static void main(String[] args). Diese Datei wird zusammen mit allen anderen Dateien kompiliert und ihre .class-Dateien werden alle an das Verzeichnis/classes gesendet.

Nun, wenn ich versuche, Main.class mit java Main innerhalb der Klassen/X/Verzeichnis zu laufen lasse, erhalte ich folgende Fehlermeldung:

Error: Could not find or load main class Main 

Also dachte ich, ich würde versuchen, mit dem Classpath Messing. Ich ging zwei Verzeichnisse auf und versuchte, dieses:

java -cp jsoup-1.8.3.jar;./X/;./Y/;./Z/ Z/Main 

Aber dann alles, was ich bekam, waren Anweisungen, wie Java zu verwenden, gefolgt von

bash: ./X/: Is a directory 
bash: ./Y/: Is a directory 
bash: ./Z/: Is a directory 

P. S. Ich benutze Git Bash in Windows, deshalb habe ich den bash Fehler anstelle eines Cmd oder Powershell Fehlers bekommen. Ich habe auch versucht, Doppelpunkt als das Trennzeichen anstelle von Semikolon zu verwenden, aber wenn ich etwas tat sonst falsch, das hat auch nicht funktioniert.

Antwort

1

Lets nehme an, Sie haben:

myDir
X A.class b.class
- Y d.class
- Z MainClass.class

wobei X, Y und Z Verzeichnisse.
Y und Z sind Unterverzeichnisse von X, X ist ein Unterverzeichnis von myDir.

Positionieren Sie sich in> myDir und ausführen:

java -cp "your jars..." X.Y.MainClass