「パッケージが存在しません」エラーの修正
「パッケージが存在しません」エラーの原因を理解したところで、それを修正する方法を探りましょう。この問題を解決するには、いくつかの方法があります。
解決策 1: 不足しているパッケージとクラスの作成
最も簡単な解決策は、不足しているパッケージとクラスを作成することです。これを実装しましょう。
mkdir -p ~/project/src/com/example/math
次に、~/project/src/com/example/math ディレクトリに Calculator.java という名前の新しいファイルを作成し、以下の内容を記述します。
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;
}
}
これで、ファイルを再度コンパイルしてみてください。まず Calculator.java ファイルをコンパイルし、次に適切なクラスパスで ErrorDemo.java をコンパイルします。
cd ~/project
javac src/com/example/math/Calculator.java
javac -cp src src/com/example/app/ErrorDemo.java
重要: 前回と同様に、コンパイラがコンパイル済みの Calculator.class ファイルを見つけられるように、ErrorDemo.java をコンパイルする際には -cp src を使用する必要があります。
今回は、コンパイルがエラーなく成功するはずです。これでプログラムを実行できます。
java -cp src com.example.app.ErrorDemo
以下の出力が表示されるはずです。
Result: 8
解決策 2: インポート文の修正
別のパッケージまたはクラスを使用するつもりだった場合は、インポート文を修正することも別の解決策です。たとえば、以前に作成した StringUtils クラスを使用したいとしましょう。
~/project/src/com/example/app ディレクトリに CorrectedDemo.java という名前の新しいファイルを作成し、以下の内容を記述します。
package com.example.app;
// 修正されたインポート文
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);
}
}
このファイルをコンパイルして実行します。
cd ~/project
javac -cp src src/com/example/app/CorrectedDemo.java
java -cp src com.example.app.CorrectedDemo
以下の出力が表示されるはずです。
Original: Hello, Java!
Reversed: !avaJ ,olleH
解決策 3: 完全修飾クラス名の使用
インポート文を完全に省略したい場合は、完全修飾クラス名を使用できます。
~/project/src/com/example/app ディレクトリに FullyQualifiedDemo.java という名前の新しいファイルを作成し、以下の内容を記述します。
package com.example.app;
// インポート文は不要
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);
}
}
このファイルをコンパイルして実行します。
cd ~/project
javac -cp src src/com/example/app/FullyQualifiedDemo.java
java -cp src com.example.app.FullyQualifiedDemo
以前と同じ出力が表示されるはずです。