Axel Richter: Java Klasse kompilieren ohne Import einer zweiten

Beitrag lesen

Hallo,

das ist also Deine Eintrag.java:

package webjava;

...

public class Eintrag
{

...

}

Beim Kompilieren mit
javac Eintrag.java
entsteht eine CLASS-Datei mit der Signatur webjava.Eintrag im aktuellen Verzeichnis.

und

das ist Deine Kontainer.java:

package webjava;

...

public class Kontainer
{

...

public void add(Eintrag einEintrag)

^hier wird eine Klasse webjava.Eintrag im Verzeichnis [aktVerz]/webjava/, also [aktVerz]/webjava/Eintrag.class erwartet.
...

}

Lege im aktuellen Verzeichnis nach dem Kompilieren von Eintrag.java einen Ordner webjava an und verschiebe die Eintrag.class dorthin. Dann wird
javac Kontainer.java
im aktuellen Verzeichnis funktionieren. Die entstandene Kontainer.class gehört allerdings dann auch in das Verzeichnis [aktVerz]/webjava/ verschoben, damit das Package beim Ausführen funktioniert.

Besser:
Die Dateien Eintrag.java und Kontainer.java befinden sich im aktuellen Verzeichnis. Dann führst Du von dort

javac -d . *.java

aus. Dabei wird im aktuellen Verzeichnis das Verzeichnis webjava angelegt, in dem sich dann die Eintrag.class und Kontainer.class befinden.

Lesson: Packages->Managing Source and Class Files

viele Grüße

Axel