Correction de l'Erreur "Package Does Not Exist"
Maintenant que nous comprenons ce qui cause l'erreur "package does not exist" (le package n'existe pas), explorons les moyens de la corriger. Il existe plusieurs approches pour résoudre ce problème :
Solution 1 : Créer le Package et la Classe Manquants
La solution la plus directe est de créer le package et la classe manquants. Mettons cela en œuvre :
mkdir -p ~/project/src/com/example/math
Maintenant, créez un nouveau fichier nommé Calculator.java dans le répertoire ~/project/src/com/example/math avec le contenu suivant :
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;
}
}
Essayez maintenant de compiler à nouveau les fichiers. D'abord, compilez le fichier Calculator.java, puis compilez ErrorDemo.java avec le classpath approprié :
cd ~/project
javac src/com/example/math/Calculator.java
javac -cp src src/com/example/app/ErrorDemo.java
Important : Comme précédemment, nous devons utiliser -cp src lors de la compilation de ErrorDemo.java afin que le compilateur puisse trouver le fichier compilé Calculator.class.
Cette fois, la compilation devrait réussir sans erreurs. Vous pouvez maintenant exécuter le programme :
java -cp src com.example.app.ErrorDemo
Vous devriez voir la sortie :
Result: 8
Solution 2 : Corriger l'Instruction d'Importation
Si vous aviez l'intention d'utiliser un package ou une classe différent, une autre solution consiste à corriger l'instruction d'importation. Supposons que nous voulions réellement utiliser la classe StringUtils que nous avons créée précédemment.
Créez un nouveau fichier nommé CorrectedDemo.java dans le répertoire ~/project/src/com/example/app avec le contenu suivant :
package com.example.app;
// Instruction d'importation corrigée
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);
}
}
Compilez et exécutez ce fichier :
cd ~/project
javac -cp src src/com/example/app/CorrectedDemo.java
java -cp src com.example.app.CorrectedDemo
Vous devriez voir la sortie :
Original: Hello, Java!
Reversed: !avaJ ,olleH
Solution 3 : Utiliser les Noms de Classe Entièrement Qualifiés
Si vous souhaitez éviter complètement les instructions d'importation, vous pouvez utiliser les noms de classe entièrement qualifiés :
Créez un nouveau fichier nommé FullyQualifiedDemo.java dans le répertoire ~/project/src/com/example/app avec le contenu suivant :
package com.example.app;
// Aucune instruction d'importation nécessaire
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);
}
}
Compilez et exécutez ce fichier :
cd ~/project
javac -cp src src/com/example/app/FullyQualifiedDemo.java
java -cp src com.example.app.FullyQualifiedDemo
Vous devriez voir la même sortie qu'auparavant.