私はJavaで初心者です。私はUbuntu端末経由でJavaプログラムを実行しています 私はちょうどJavaパッケージトピックを開始し、数時間問題を扱っています。 私は、単一クラスのHelloを持つpackという単純なパッケージを作成しようとしました。 ディレクトリパックを作成しました。パックの中にHello.classファイルを入力してください。Javaパッケージ実行時エラー
javac -d ./pack Hello.java
コマンドです。 次に、mainメソッドを含むクラスにpackパッケージを含めました。クラスの名前はtestで、test.javaファイルにあります。このクラスは別のディレクトリにあります。私は
javac -cp ./pack test.java
を介してコンパイルします。エラーはありません。私は、コマンド
java -cp ./pack test
を入力したときに、私は
java test
コマンドを試したとき はしかし、それは私に
Error: Could not find or load main class test
を与えます。次のメッセージが表示されました
Exception in thread "main" java.lang.NoClassDefFoundError: pack/Hello
at test.main(test.java:6)
Caused by: java.lang.ClassNotFoundException: pack.Hello
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 1 more
誰でも私が間違っていることを説明できますか?どんな助けでも大歓迎です。
申し訳ありません、私はボットに自分のソースコードを含めました。どうぞ。
import pack.Hello;
public class test
{
public static void main(String args[])
{
Hello.HelloMessage();
}
}
これは、すべてがOKかどうかをテストしtest.javaファイルです。それは
/home/uesername/apps
ディレクトリにあります。
私は "pack"ディレクトリを作成しました。パックディレクトリへのフルパスは
home/username/apps/pack
です。 "pack"の中にHello.javaファイルを入れました。 Hello.javaファイルの内容は、
package pack;
public class Hello
{
public static void HelloMessage()
{
System.out.println("hello, world");
}
}
"ディレクトリパックを作成しました。パック内にHello.classファイルを挿入します"。 '-d'フラグはあなた自身のためにパッケージ構造を作成します – Ramanlfc
ソースコードを表示できますか? "package"で始まる行とHelloを "import"する行は、少なくとも(test.javaから)必要です。 Hello.javaからは、 "package"で始まる行が必要です。 –