私はjavacとjavaコマンドを使って端末でJavaクラスをコンパイルして実行する方法を学びます。問題なく単一のクラスをコンパイルして実行できますが、クラスをパッケージに入れて実行しようとすると、「エラー:基本クラス(クラス名)を見つけるかロードできません」というメッセージが表示されます。
現在私のディレクトリ構造は次のとおりです。~/Desktop/OCA_Practice/cert
私が実行しているファイルの名前はでありTest.java
、このファイルをというパッケージに入れましたcert
。私の非常に基本的なクラスは次のとおりです。
package cert;
public class Test {
public static void main(String args[]) {
System.out.println("This is a test.");
}
}
certディレクトリでコマンドを実行するとjavac Test.java
クラスは正常にコンパイルされますが、java Test
コンパイル後に実行しようとするとエラーが発生します。プログラムを実行しようとすると、クラスに加えて、に示すようにjava Desktop.OCA_Practice.cert.Test
フォルダ構造を実行しようとしても機能しません。クラスのパッケージ宣言を次のように変更しましたが、Desktop.OCA_Practice_Probs.cert
そのうちの1つも機能しません。
私は成功せずに様々な方法を試しました。クラスファイルにパッケージ名を誤って書きましたか?コマンドを実行しました。java -version
実行中としてマークされているjava version "1.8.0_25"
ので、クラスパスが正しく設定されていると確信しています。
どんな答えでもよろしくお願いします。
答え1
Javaでクラスを実行するときは、フォルダーとファイル名と一致するように正しい場所に完全なパッケージ名とクラス名を指定する必要があります。
したがって、あなたの場合は、もともとpackage cert;
クラスで宣言してビルドし、次のように実行します。
cd ~/Desktop/OCA_Practice
java cert.Test
答え2
パッケージのクラスを実行するには、必ずパッケージの親ディレクトリでクラスを実行してください。
あなたの場合は、次のコマンドを使用してOCA_Practiceディレクトリで端末を開きます。
cd ~/デスクトップ/OCA_Practice
次に、javaの後にパッケージ名を使用して、コマンドを介してクラスファイルを実行します。
Java証明書のテスト