• ベストアンサー

JDKをインストールしたのですが、、、

こんばんは。javaの勉強をしたいなぁと思ったのでJDK1.3を雑誌の付録CDを使ってインストールしました。そしてプログラム作ってコンパイルまでは行ったのですが、実行ができないのです。 エラーメッセージはExceptioninthread"main"java.lang.NoClassDefFoundError:ファイル名 とでていました。 どういった理由が考えられるでしょうか?多分プログラムは間違ってないと思うのですが、、、

  • Java
  • 回答数5
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • arata
  • ベストアンサー率49% (139/279)
回答No.3

プログラム自体に問題はありません。moyuruさんの指摘が正解ですね。 CLASSPATHは不思議な動きをします。 Java2以降の場合ですが、 □CLASSPATHに指定がされていない場合 カレントディレクトリとJAVA_HOMEで指定されたディレクトリのlib/tools.jarとJAVA_HOMEで指定されたディレクトリの/jre/lib/extが対象になります。 □CLASSPATHに指定がされている場合 CLASSPATHに定義されたディレクトリ、jarとJAVA_HOMEで指定されたディレクトリのlib/tools.jarとJAVA_HOMEで指定されたディレクトリの/jre/lib/extが対象になります。 つまり、CLASSPATHに指定をするとカレントディレクトリが検索対象からはずれてしまうのです。このため、 SET CLASSPATH=.;C:\TOMCAT\Lib・・・・ のように、カレントディレクトリを検索するように、.の指定が必要になるのです。

mezirosinji
質問者

お礼

ありがとうございました。やっと動きました。 パスについては本やホームページにたくさん載っていましたが、こんな事はひとつも書いてありませんでした。 皆さんどうやって知ったのでしょう?常識なのでしょうか? とにかく本当に助かりました。ありがとうございました。

その他の回答 (4)

回答No.5

皆さんがおっしゃっているように、CLASSPATHに.を追加すると カレントディレクトリをCLASSPATHの対象にするんでしたね。 忘れてました。私もそうなってました(^^;

mezirosinji
質問者

お礼

ありがとうございました。

  • misoka
  • ベストアンサー率35% (56/160)
回答No.4

うーん、はずしてるかもしれませんが... 実行するときのコマンドのパラメータは、どのようにしていますか? ソースが sample.java の場合、javacすると sample.class ができますが、 これを実行するには、 java sample となります。 java sample.class ではありません。javaコマンドのパラメータは、ファイル名ではなく、 クラス名でなければいけないからです。 この点は、私もやった間違いなので、もしや...と思って回答してみました。 OSがファイル名と拡張子の区切り文字として使用している「.」は、 Javaでは、クラスの区切り文字です。 つまり、java コマンドのパラメータを sample.class と してしまうと、sample パッケージの class クラスを java しなさい、と 言っていることになってしまいます。 そういうクラスは存在していないので、現象のようなエラーメッセージが 出ているのではないでしょうか?

mezirosinji
質問者

お礼

ありがとうございました。

noname#209929
noname#209929
回答No.2

クラスパスが通ってません。 java -cp . test か、 Autoexec.batに set classpath = . を追加しましょう。 トップからJDKで検索すれば同じ質問が山ほどあります。

参考URL:
http://www.okweb.ne.jp/search.php3?dummy=%83%81%81%5B%83%8B&c=207&kw=jdk
mezirosinji
質問者

お礼

ありがとうございました。

mezirosinji
質問者

補足

参考URL等を頼りにやってみたのですが、どうしても出来ません。 Autoexec.bat @ECHO OFF rem C:\PROGRA~1\MCAFEE\VIRUSS~1\SCANPM.EXE C:\ rem @IF ERRORLEVEL 1 PAUSE SET PATH=%PATH%;C:\jdk1.3\bin SET CLASSPATH=C:\Program Files\PD2\AdobeConnectables;C:\jdk1.3\bin\program loadhigh c:\windows\nlsfunc.exe c:\windows\country.sys 追加したのは SET PATH==%PATH%;C:\jdk1.3\bin\ と SET CLASSPATHの;C:\jdk1.3\bin\program の部分なんですが、どこが間違ってるか教えてはいただけないでしょうか? binの下のprogramはソースファイルが入っているディレクトリです。

回答No.1

ええと、hoge.javaというファイルにプログラムを作成し、 mainメソッドがあるクラス名もhogeだとします。 コンパイルするとhoge.classをはじめとするいくつかのclassファイルが できるはずです。(hoge.classしかないかもしれません) それで、実行するときは java hoge と入力するのですが、hoge.classまで入力していないでしょうか。 あるいは、そのclassファイルがあるディレクトリで実行しているでしょうか。 そうでない場合は適切にclassファイルの場所を指定する必要があります。

mezirosinji
質問者

補足

早速の回答ありがとうございます。 はい。実行するときは java Test としています。(ファイル名はTest.java) ディレクトリもそのファイルがあるところで実行しています。 私は学校のパソコンではすでにJDKを経験済み(とは言ってもちょっとかじった程度ですが)なので、多分コマンド関係は大丈夫だと思うんですよ。 でも、パソコンについてはほとんど素人でして、設定の仕方に問題があるのかなと思っています。 もし、これかなっていうのがあればぜひ教えてください。 ちなみにソースは class Test{ public static void main(String args[]){ int A,B; A=1; B=2; int C=A+B; System.out.println("A+B="+C); } } です。 MS-DOSで javac Test.java java Test こう入力しています。 OSは WINDOWS95 です。

関連するQ&A

  • JAVA jdkのインストールしたのですが実行できません

    jdkをインストールしたのですが、コマンドプロンプトでコンパイルと実行が出来ません。 画面には、『Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object』 となります。 一応、環境変数(マイコンピューターからプロパティに入り設定)のPATHに;C:\Program Files\Java\jdk1.5.0\binを入力しました。 自分は初心者なので、よく分からない形で図々しい質問になってしまい申しわけありませんがよろしくお願いいたします。 また、Javaファイルの保存先はbinに保存でいいのでしょうか? 他の場所にファイルを保存して出来ないでしょうか?申し訳ありませんが、よろしくお願いいたします。

  • jdk1.3で実行すると・・・

    jdk1.3でコンパイルし実行すると Exception in thread "main" java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:385) at java.awt.GridBagLayout.setConstraints(GridBagLayout.java:357) at rei008.<init>(rei008.java:144) at rei008.main(rei008.java:20) というメッセージが出てプログラムが実行できません。 なぜなんでしょうか?宜しくお願いします。

    • ベストアンサー
    • Java
  • 実行時に出るエラーの意味が解りません

    Javaで、「SystemFont 」というクラス名をつけて プログラムを組み、コンパイルしてその後実行したところ Exception in thread "main" java.lang. NoClassDefFoundError:SystemFont というエラーが表示されるだけで実行できません。 このエラーの示す意味をどなたか教えて頂けませんか?

    • ベストアンサー
    • Java
  • JDKをインストールしたのですが・・・。

    PC(Win98)にjavaの開発環境を入れようと、java入門書に付随していたCD-ROMからJDKをインストールしたのですが、MS/DOSプロンプトからjavaファイルのコンパイル(javacコマンド)がうまくいきません。javaファイルはサンプルとしてついていたもので、コーディングが間違っているわけでもなく、エラーがあるならでるはずの結果もでてきません。 JDKはSunMicrosystemsの無料配布しているものなのですが、本にはインストール方法が全く載っていませんでした。Win版のexeファイルを実行する他に設定しなければならないことなどあれば教えてください。 お願いします。

    • ベストアンサー
    • Java
  • javaが実行されない

    雑誌を買ってjavaでプログラミングをしているのですが なぜか実行できません。 ツールはteraPadとJDKを使っています。 public class sample { public static void main(String[] args) { System.out.println("hello!"); } } コンパイルし、classファイルを実行すると Exception in thread "main" java.lang.NoClassDefFoundError: sample/class と出て実行できません。結果はhello!となるはずなのですがどなたかどこがおかしいのか教えてください。

    • ベストアンサー
    • Java
  • 超初心者。プログラムの実行ができません

    やさしいJavaという本を買ってきて、勉強しようとはじめたものの、プログラムの実行でつまずいています。いろいろと読むとpathが悪い気がするのですが、どうしたらいいのかわからないので、おわかりの方ご教授ください。 エラーメッセージ Exception in thread "main"Java.lang.NoCLassDefFoundError:Sample1 ---- PATH C:\Program Files\Java\jdk1.5.0_09\bin ---- CLASSPATH C:\Program Files\Java\j2re1.4.2_06\lib\ext\QTJava.zip;. よろしくお願いします。

  • xpでのsdkインストール

    今まで98とMeでJAVAの勉強をしていました。 あたらしくxpのpcを購入したのでsdkをインストールしたのですが、うまく動作しません。 環境変数でPathをとうしましたが、 javac [enter] とした場合にはいつものメッセージが出て、しかもコンパイル間でできたので安心したのですが、 java [enter] とした場合にうまくいきません。つまり実行できません。 具体的には Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object とでてしまうのです。 どうすればいいのでしょうか???

    • ベストアンサー
    • Java
  • Java実行でのエラー

    Javaを勉強したいのでインストールしてみたところまでは良かったのですがコンパイルを通した後に実行すると動きません。 CLASSPATH:c:\Java JavaファイルがJavaフォルダの中に入っている状態です。 【手順】 c:\Java>java HelloJava.java ↓コンパイル成功 c:\Java>java HelloJava Exception in thread "main" java.lang.NoClassDefFoundError: HelloJava というエラーが出てJavaを実行できません。 エラーの内容がわかる方はがいらっしゃれば教えて頂きたいです。

    • ベストアンサー
    • Java
  • コンパイルができなくて悩んでいます!!!

    先程、サンマイクロシステム社のホームページから、jdk1.5.0_02のJDKをダウンロードしてインストールしたのですが、どうしてもコンパイルできません。 "MyJava.java"というデータを作成したフォルダに行き"javac MyJava.java"とコンパイルすると、 画面には Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/Main と表示されます。。。何回してもこのメッセージが出るのですが、私全くの初心者でどういう意味なのかわかりません。本当に困っています、なぜコンパイルが出来ないのか、また解決方法を教えてください。どうかお願いします。

    • ベストアンサー
    • Java
  • 教えてください

    私はJavaを勉強してまだ1週間の初心者です。 参考書等見てもどうしてもわからなかったので、分かる人がいらっしゃいましたら教えていただきたいと思い、掲載させてもらいました。 サンプルで次のようなプログラムを作りました。 //サンプルプログラム class Sample{ public static void main(String args[]){ try{ System.out.println("sample"); }catch(NoClassDefFoundError e){ System.out.println(e + "という例外が起こりました"); }finally{ System.out.println("終了"); } } } このサンプルプログラムをコンパイルすることはできたのですが、実行すると、 [Exception in thread "main" java.lang.NoClassDefFoundError: Sample] のようなエラーが出ます。 ちなみに私は  JavaTM 2 SDK, Standard Edition  Version 1.3.1_01  Microsoft Windows 用 をインターネットからインストールして使っているのですが、 先週までは実行できたのですが、今週にはいってから実行できなくなりました。 JDKのアプリケーションを削除してまた、再インストールして実行しても 何もかわらず、先ほどのようなエラーが出るだけです。 原因がまったくわかりません。 どんなささいなことでも何でも構いませんので、解決するためのアドバイスをお願いします。