![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
コンパイル後、実行するとコードはどのようなものでも、同様のエラーメッセージが表示されます。
例えば、超基本の下記のソースでも表示されます。
//Sample01.java
class Sample01
{
public static void main (String args[])
{
System.out.println("Hello World");
}
}
エラーメッセージは同様に、
「Excption in thread "main"java.lang.NoClassDefFoundError: Sample01」
と表示されてしまいます。
このエラーの対処方法をお願いします。
No.4ベストアンサー
- 回答日時:
どうも、#1です。
実行できるようになって、良かったですね。これからもがんばってください。
さて、お礼のところにもう1個質問が書いてあったので、それにお答えしますと。
パスを設定するときにWin98ならAutoExec.bat、Win2000もしくはXPだとシステムから環境変数で設定したと思いますが、そこに新規でCLASSPATHというのを作ります。で、値を D:\Java となります。
#1のお礼のところには、D:\Java\Practiceとなっていますが、もし、こっちをフォルダとして使っているならこっちを指定してください。
ようするに、作業フォルダをクラスパスとすればよいです。作業フォルダを新規に作ったときは、環境変数も付け足すなりなんなりしなくてはいけません。
僕も、前はクラスパスなしで実行できたんですが、最近は駄目なんですけど、なんでですかね?Javaバーチャルマシンの仕様だと、カレントディレクトリもClassファイルを探してくれると聞いたんですが。。。その辺は、謎です。
では、がんばってください。
参考URL:http://www.wikiroom.com/java/
度々ご回答いただきましてありがとうございます。
おかげさまで実行できるようになりました。
私もjdk1.3の時はCLASSPATHの設定無しで問題が無かったのですが、
一度、j2sdk1.4.2_01をインストールしたところ、
アンインストールしても今回の様になってしまいました。
SDKの使用が変わってしまったようですね。
本当に今回は助かりました、また何かありましたら宜しくお願いいたします。
No.5
- 回答日時:
クラスパスが云々という話はJavaプログラミングをするうえで避けては通れない道ですが、何にせよCLASSPATHについて理解のないまま環境変数でCLASSPATHを設定するのはあまりお勧めできません。
PATH環境変数の設定は必須ですが、CLASSPATH環境変数は設定しなくても動きます。むしろ、下手にCLASSPATH環境変数を設定すると、No.2の回答の補足にあるようなエラーが出る羽目になります。
クラスパスは、No.1やNo.2の回答にあるように、-cp (あるいは -classpath でも同じことですが)コマンドを使って指定するのが推奨されていますので、それに従うのが良いと思います。
なお、CLASSPATH環境変数でも -cp コマンドでもクラスパスを設定しなかった場合は、カレントディレクトリが自動的にクラスパスになります。カレントディレクトリを変えるだけで、事実上クラスパスも変えることができるので、はじめのうちはこの「クラスパスをまったく設定しない」方法をお勧めします。
もちろん、クラスパスを環境変数で設定しないほうが良いというのには、理由があります。今回は D:\Java\Practice フォルダにクラスファイルを置かれているようですが、例えば次に D:\Java\Practice2 という新たなフォルダに別なプログラムを作って実行するとなったらどうでしょうか。プログラムが変わるたびに環境変数をいちいち設定し直していたのでは切りがありません。
そもそも環境変数というのは、状況に応じて頻繁に変更されるというような設計にはなっていないのです。
OS全体の「環境」に関する設定をするためにあるのであって、たかが一つのクラスファイルのためだけにCLASSPATH環境変数を使うというのは誤りなのです。
個々のプログラムに対してクラスパスを設定するには、No.3の回答にあるようにそれぞれのコマンドプロンプトでCLASSPATHを設定するとか、あるいは -cp コマンドを使うというのが正式な作法なのです。
ご回答ありがとうございます。
以前JDK1.3を使っていたときは、
特にCLASSPATH環境変数の設定無しで、
実行できたいのですが、今回j2sdk-1_4_2_01を、
入れてみたところ、エラーが出てしまいました。
UKYさんのおっしゃるとおり-cpを使うべきだとは
思うのですが、フリーソフトのCPad for Java2SDKという、
ソフトを使う都合上-cpを付けずに実行したかったのです。
ただ、ソフトの方で環境変数の設定ができまして、
解決できました。
また、何かありましたらアドバイスを宜しくお願いいたします。
No.3
- 回答日時:
pathはjavaやjavacのあるファイルを指定
例えば、c:\jdk1.3\bin
classpathはclassファイルがあるファイルを指定ですよ
プロンプト画面で、set classpathでclasspathがどうなってるのか見れますよ。pathはset pathです。環境変数でも変えられますが、コマンドの後ろに=をつければ、プロンプト画面でも変えられます。変わったら普通にやれますよ。
頑張ってください。 例 set classpath=c:\JData
分かるといいな…
No.2
- 回答日時:
FAQなのですが,過去質問を探すのも面倒なので..。
CLASSPATHにカレントディレクトリ(.)が入っていないのが原因ではないかと思います。
java -classpath . Sample01
として実行してみてください。
参考URL:http://www2s.biglobe.ne.jp/~yuuki_ki/java_basic2 …
この回答への補足
ご回答ありがとうございます。
java -classpath . Sample01 と入力したところ、
問題なく実行することができました。
以前は問題なく実行できていて、環境変数などを
いじった覚えもないのですが、久しぶりにJAVAをやったところ、
今回のようなエラーが表示されてしまいました。
参考URLも拝見させていただきましたが、
-classpathをつけずに実行するためには、
環境変数の設定を行わなければいけないかと思いますが、
ユーザー環境変数にどのように設定を行えばいいのでしょうか?
変数名:CLASSPATH
変数値:D:\jdk1.3\bin
と設定してみたのですがエラーになってしまいました。
設定の仕方を教えていただけると助かります。
No.1
- 回答日時:
作業フォルダが○○だとします
java -cp C:\○○ Sample01
この回答への補足
ご回答ありがとうございます。
java -cp D:\java\Practice Sample01
と実行したところ正常に動きました。
以前は-cpを付けずに問題なく動いていたのですが、
環境変数にどのような設定を行えば-cpを付けずに
動くのか、お分かりになるようでしたら、
教えていただけませんでしょうか?
私の環境ですが、
プログラム本体が、D:\jdk1.3、
保存先が、D:\java、
になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java eclipse実行ができない 2 2022/07/27 04:47
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloudSticky.jarが起動しない。
-
windows power shell icacl
-
VBプログラムから「管理者とし...
-
32bitアプリから64bitアプリの...
-
バッチファイルの書き方について
-
ShellExecuteの使い方について
-
jarファイルをバッチで実行させ...
-
windowsのタスクスケジューラを...
-
javaからバッチファイル実行
-
VB6.0 ラベルが文字化け
-
Eclipseで、プロジェクト名のと...
-
eclipseでスタックサイズを変更...
-
JSPのクラスをコンパイルできな...
-
split関数で区切り文字がない場合
-
JAVAにのeclipseに関する質問で...
-
html上で、バッチやexeファイル...
-
classファイルについて
-
Eclipse・プロジェクトで、フォ...
-
Eclipse(JAVA)のデバッグで他...
-
eclipseのショトカットキー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでタイトルバーを非表示...
-
VBプログラムから「管理者とし...
-
CloudSticky.jarが起動しない。
-
jarファイルをバッチで実行させ...
-
batよりjava起動
-
ShellExecuteの使い方について
-
32bitアプリから64bitアプリの...
-
Java VM のヒープサイズについて
-
C#からバッチファイルを起動で
-
ブレークポイントを設置してな...
-
ACCESS VBA からエクセルを最小化
-
windows power shell icacl
-
Javaプログラムでコマンド実行...
-
SYSTEM関数等を用いて複数のコ...
-
MacOS:ターミナルではNPMのコ...
-
JAVA バッチファイルの作成・...
-
コマンドを実行してコマンドラ...
-
javaからバッチファイル実行
-
windowsのタスクスケジューラを...
-
Java 特定プロセス名前取得方法...
おすすめ情報