重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

CLASSPATH=.:/root/workspace/test:export CLASSPATH
と環境設定し

/root/workspace/test/test

Test0.java:
package test;
class SayHello
{
public void method()
{
System.out.println("Hello World!");
}
}



SayHello.java:
package test;
public class Test0
{
public static void main(String[] args)
{
SayHello sh=new SayHello();
sh.method();
}
}

を作り

javac Test0.java SayHello.java

をし(成功)

java Test0

をしたのですが

[root@Prime test]# java Test0
Exception in thread "main" java.lang.NoClassDefFoundError: loaded class Test0 was in fact named test.Test0
at java.lang.VMClassLoader.defineClass(libgcj.so.7)
at java.lang.ClassLoader.defineClass(libgcj.so.7)
at java.security.SecureClassLoader.defineClass(libgcj.so.7)
at java.net.URLClassLoader.findClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.ClassLoader.loadClass(libgcj.so.7)
at java.lang.Class.forName(libgcj.so.7)
at gnu.java.lang.MainThread.run(libgcj.so.7)
[root@Prime test]#

となりうまくいかないのですが対策を教えてください。

A 回答 (3件)

java コマンドに渡す引数はパッケージ名を含めたクラスの名前です。

パッケージ名とクラス名の間はスラッシュではなくドットで区切ります。

java test/Test0
ではなく
java test.Test0
でプログラムが実行できるはずです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
無事に動きました。

お礼日時:2006/09/10 13:23

パッケージ名を含めたクラス名で指定なので


「java test.Test0」
ではないでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございました。
既に同じ回答を得ていたのですが動きました。

お礼日時:2006/09/10 13:24

package testとしているので


cd ..
java test/Test0
としたらうごくはずです。

追加ですが、プログラムはsuper userで作らないほうがいいと思います。
おそらく初めてlinuxを使っていると思うのですが、Windowsと違ってmaltiuser対応のOSなので自分の権限で動かすようにつくったほうがいいと思います。参考までに。わたしも始めはそうでしたので。

この回答への補足

ありがとうございます。
次からメンバでやろうと思いました。
御指摘の通りやってみると以下の様になり
やはりエラーが出ます。
因みにeclipseから実行する限りは動いています。
何か他に手順が抜けていないでしょうか?


[root@Prime test]# cd /root/workspace/test
[root@Prime test]# pwd
/root/workspace/test
[root@Prime test]# CLASSPATH=.:/root/workspace:/root/workspace/test:/root/workspace/test/test
[root@Prime test]# export CLASSPATH
[root@Prime test]# javac test/test0.java test/SayHello.java
[root@Prime test]# java test/test0
Exception in thread "main" java.lang.NoClassDefFoundError: test/test0
at gnu.java.lang.MainThread.run(libgcj.so.7)
Caused by: java.lang.ClassNotFoundException: test/test0
at java.lang.Class.forName(libgcj.so.7)
at gnu.java.lang.MainThread.run(libgcj.so.7)
[root@Prime test]#

補足日時:2006/09/10 12:29
    • good
    • 0
この回答へのお礼

失礼しました。
入力ミスがありました。
修正後やりましたが以下のようにうまくいきませんでした。

[root@Prime test]# cd /root/workspace/test
[root@Prime test]# pwd
/root/workspace/test
[root@Prime test]# CLASSPATH=.:/root/workspace:/root/workspace/test
[root@Prime test]# export CLASSPATH
[root@Prime test]# javac test/Test0.java test/SayHello.java
[root@Prime test]# java test/Test0
Exception in thread "main" java.lang.NoClassDefFoundError: test/Test0
at gnu.java.lang.MainThread.run(libgcj.so.7)
Caused by: java.lang.ClassNotFoundException: test/Test0
at java.lang.Class.forName(libgcj.so.7)
at gnu.java.lang.MainThread.run(libgcj.so.7)
[root@Prime test]#

お礼日時:2006/09/10 12:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!