Package & Co

Hallo zusammen,

ich habe Tomcat installiert und folgendes Problem:

Im Klassenverzeichnis unter ROOT/Web-inf/classes habe ich ein
Unterverzeichnis testPackage für ein Package angelegt.

Folgende Klasse ‚KlasseA‘ hab ich dort (also unter
ROOT/Web-inf/classes/testPackage ) abgelegt und auch fehlerfrei
compilieren können:


package testPackage;

public class KlasseA {

private int a;

public KlasseA(int a) {
this.a=a;
}

public int getA() {
return (a);
}
}


Eine weitere Klasse ‚KlasseB‘ mit folgendem Code:


package testPackage;

public class KlasseB {
private KlasseA A;


}


habe ich in dieses Verzeichnis gelegt. Beim Compilieren mit ‚javac KlasseB.java‘ erhielt ich folgende Fehlermeldung:

cannot resolve symbol
symbol: class KlasseA
location: class testPackage.KlasseB
private KlasseA A;
1 error

Warum findet der Java-Compiler die KlasseA nicht???

Ein Versuch mit
import KlasseA; oder auch
import testPackage.KlasseA;
brachte auch Fehlermeldungen hervor!!

Vielen Dank im voraus für Eure Hilfe!

Gruss Uli

Warum findet der Java-Compiler die KlasseA nicht???

Hast du das Verzeichnis /Web-inf/classes/ im CLASSPATH stehen? Alternativ kannst du es auch beim kompilieren angeben:

javac -d /Web-inf/classes -cp /Web-inf/classes KlasseB.java

-d sagt ihm, dass er die kompilierte KlasseB dorthin kopieren soll, -cp sagt ihm, dass das sein CLASSPATH ist, also, dass er dort nach anderen Java-Klassen die eingebunden werden schauen soll.

Falls KlasseB nicht auch im testPackage ist, brauchst du darüberhinaus auch ein import für testPackage.KlasseA.

Grüße, Robert

Folgender Eintag in der autoexec.bat wirkt Wunder:

set CLASSPATH=.;C:\java\tomcat\webapps\root\web-inf\classes

Besten Dank für die schnelle Hilfe!

Es grüßt Dich
Uli