Beheben des Fehlers "Package Does Not Exist"
Nachdem wir nun verstehen, was den Fehler "package does not exist" verursacht, wollen wir uns Wege ansehen, ihn zu beheben. Es gibt mehrere Ansätze, um dieses Problem zu lösen:
Lösung 1: Erstellen des fehlenden Pakets und der fehlenden Klasse
Die direkteste Lösung ist, das fehlende Paket und die fehlende Klasse zu erstellen. Lassen Sie uns dies implementieren:
mkdir -p ~/project/src/com/example/math
Erstellen Sie nun eine neue Datei namens Calculator.java im Verzeichnis ~/project/src/com/example/math mit folgendem Inhalt:
package com.example.math;
public class Calculator {
public static int add(int a, int b) {
return a + b;
}
public static int subtract(int a, int b) {
return a - b;
}
public static int multiply(int a, int b) {
return a * b;
}
public static int divide(int a, int b) {
if (b == 0) {
throw new ArithmeticException("Division by zero");
}
return a / b;
}
}
Versuchen Sie nun, die Dateien erneut zu kompilieren. Kompilieren Sie zuerst die Datei Calculator.java und dann ErrorDemo.java mit dem richtigen Classpath:
cd ~/project
javac src/com/example/math/Calculator.java
javac -cp src src/com/example/app/ErrorDemo.java
Wichtig: Genau wie zuvor müssen wir -cp src beim Kompilieren von ErrorDemo.java verwenden, damit der Compiler die kompilierte Datei Calculator.class finden kann.
Diesmal sollte die Kompilierung ohne Fehler erfolgreich sein. Jetzt können Sie das Programm ausführen:
java -cp src com.example.app.ErrorDemo
Sie sollten die Ausgabe sehen:
Result: 8
Lösung 2: Korrigieren der Importanweisung
Wenn Sie eigentlich ein anderes Paket oder eine andere Klasse verwenden wollten, besteht eine weitere Lösung darin, die Importanweisung zu korrigieren. Nehmen wir an, wir wollten tatsächlich die StringUtils-Klasse verwenden, die wir zuvor erstellt haben.
Erstellen Sie eine neue Datei namens CorrectedDemo.java im Verzeichnis ~/project/src/com/example/app mit folgendem Inhalt:
package com.example.app;
// Korrigierte Importanweisung
import com.example.util.StringUtils;
public class CorrectedDemo {
public static void main(String[] args) {
String original = "Hello, Java!";
String reversed = StringUtils.reverse(original);
System.out.println("Original: " + original);
System.out.println("Reversed: " + reversed);
}
}
Kompilieren und führen Sie diese Datei aus:
cd ~/project
javac -cp src src/com/example/app/CorrectedDemo.java
java -cp src com.example.app.CorrectedDemo
Sie sollten die Ausgabe sehen:
Original: Hello, Java!
Reversed: !avaJ ,olleH
Lösung 3: Verwenden von vollständig qualifizierten Klassennamen
Wenn Sie Importanweisungen ganz vermeiden möchten, können Sie vollständig qualifizierte Klassennamen verwenden:
Erstellen Sie eine neue Datei namens FullyQualifiedDemo.java im Verzeichnis ~/project/src/com/example/app mit folgendem Inhalt:
package com.example.app;
// Keine Importanweisung erforderlich
public class FullyQualifiedDemo {
public static void main(String[] args) {
String original = "Hello, Java!";
String reversed = com.example.util.StringUtils.reverse(original);
System.out.println("Original: " + original);
System.out.println("Reversed: " + reversed);
}
}
Kompilieren und führen Sie diese Datei aus:
cd ~/project
javac -cp src src/com/example/app/FullyQualifiedDemo.java
java -cp src com.example.app.FullyQualifiedDemo
Sie sollten die gleiche Ausgabe wie zuvor sehen.