Projektstruktur hinzufügen:kann nicht Klasse im selben Paket zugreifen, ohne Classpath
./src/com/example/Test.java
./src/com/example/Dog.java
Test.java
package com.example;
public class Test {
public void testing() {
Dog d = new Dog("Lab");
}
}
Dog.java
package com.example;
public class Dog {
private String breed;
Dog(String breed) {
this.breed = breed;
}
}
Es kompiliert erfolgreich, wenn ich versuche diese
.\src > javac com\example\Test.java
aber es funktioniert nicht, wenn ich dies tun
.\src > javac -cp "C:\Tomcat\lib\servlet-api.jar" com\example\Test.java
Mit diesem Fehler
error: cannot find symbol
Dog d = new Dog("Lab");
^
symbol: class Dog
location: class Test
Ich vermute, es ist, weil die vorhandenen Classpath überschrieben wird. Wie vermeide ich das?
Sie können aber auch mehr auf Detail erklären, warum nicht er, wenn es aus dem übergeordneten Verzeichnis \ src ausgeführt wird, wie dies
javac src\com\example\Test.java
ich die gleichen Fehler wie die mit Classpath bekommen.
Sorry für die Verwirrung.
Danke Jon Skeet für die Hilfe.
Ich schlage vor, Sie schreiben dies als [mcve], die nur "Test.java" und "Dog.java" hat - der Servlet Teil ist fast sicher ein Red Hering. –
Ich kann diesen Fehler nicht reproduzieren, indem ich das 'src'-Verzeichnis in den Klassenpfad gestellt habe. Sind Sie sicher, dass "C: \ Users \ AK051428 \ Desktop \ projects \ listener_test \ src" 'dasselbe ist wie nur' src'? Warum nicht einfach als 'src' angeben? –
@JonSkeet Ich habe versucht, es zu minimieren und prägnant – user3600999