Hallo zusammen
Mal eine grundsätzliche Frage, die ich nicht verstehe:
Ich habe zwei Klassen file1.java und file2.java, beide haben in der ersten Zeile z.B. die Anweisung
file1.java interagiert mit file2.java
Nun bin ich im Ordner test0, der ein Überordner von test1 ist, test2 ist wiederum Unterordner von test1. Die beiden Files liegen jetzt aber noch in test0.
Mit cd ....\test0 wechsle ich ins Verzeichnis. Mit javac file1.java will ich das erste File kompilieren, doch ich bekomme die Fehlermeldung: Cannot find symbol, file2. Die Klasse file2.java wird also nicht automatisch kompiliert, wie das sonst der Fall ist.
Wenn ich beide Files dort hin tu, wo sie eigentlich hingehören, also nach test0\test1\test2\, und mit cd ...\test0\test1\test2 ins Verzeichnis wechsle, und dann dort die gleichen javac Befehle ausführe, funktioniert es auch nicht.
Wenn ich hingegen das package Statement wegnehme, gehts.
Ich versteh wohl einfach noch nicht ganz, wie packages funktionieren, bzw. wie genau der Compiler Klassen zusammensucht (gibt ja ne Reihenfolge, aber das muss ich wohl ja nicht alles wissen).
Zudem: Wenn ich ein Package test1.test2; habe, MÜSSEN dann die Dateien in test1\test2\ liegen, oder ist das einfach nur Konvention? Hängt wohl stark damit zusammen, dass ich es eben noch nicht ganz verstehe.
Mal eine grundsätzliche Frage, die ich nicht verstehe:
Ich habe zwei Klassen file1.java und file2.java, beide haben in der ersten Zeile z.B. die Anweisung
Java:
package test1.test2;
file1.java interagiert mit file2.java
Nun bin ich im Ordner test0, der ein Überordner von test1 ist, test2 ist wiederum Unterordner von test1. Die beiden Files liegen jetzt aber noch in test0.
Mit cd ....\test0 wechsle ich ins Verzeichnis. Mit javac file1.java will ich das erste File kompilieren, doch ich bekomme die Fehlermeldung: Cannot find symbol, file2. Die Klasse file2.java wird also nicht automatisch kompiliert, wie das sonst der Fall ist.
Wenn ich beide Files dort hin tu, wo sie eigentlich hingehören, also nach test0\test1\test2\, und mit cd ...\test0\test1\test2 ins Verzeichnis wechsle, und dann dort die gleichen javac Befehle ausführe, funktioniert es auch nicht.
Wenn ich hingegen das package Statement wegnehme, gehts.
Ich versteh wohl einfach noch nicht ganz, wie packages funktionieren, bzw. wie genau der Compiler Klassen zusammensucht (gibt ja ne Reihenfolge, aber das muss ich wohl ja nicht alles wissen).
Zudem: Wenn ich ein Package test1.test2; habe, MÜSSEN dann die Dateien in test1\test2\ liegen, oder ist das einfach nur Konvention? Hängt wohl stark damit zusammen, dass ich es eben noch nicht ganz verstehe.