• ベストアンサー

超初心者です。コンパイルについて。

こんにちは。今日javaのソフトウェアをダウンロード、インストールしました。j2sdk1.4.2_08です。さっそくhelloworldにとりかかりました。コマンドプロントにjavac HelloWorld.javaと入力してもHelloWorld.classが出てきません。これってコンパイル出来てないってことでしょうか?これといったエラー通知もないです。とにかく超初心者ですので説明もうまくできず、すみません。最初からつまずいてしまって、先に進めないのでどうかご教授お願いします。あと初心者でもわかるようなサイトがあれば教えてください。OSはWINDOWSXPです。

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

  • ベストアンサー
  • unkojiji
  • ベストアンサー率33% (12/36)
回答No.8

超初心者のうちはクラスパスは気にしないほうがいいと思いますが・・・ HelloWorld程度なら、 PATH=JDKインストールディレクトリ¥bin のみでOKです。 クラスパスが必要になってくるのは今後勉強が進んで、 JavamailやJdbcを使いたくなったときに必要になりますので、 そのときに理解すればよいでしょう。 とにかく今までの設定を消して、 jdk\binへのパスだけにするか、 binに移動して実行するか、のどちらかでやってみてください。

その他の回答 (9)

  • unkojiji
  • ベストアンサー率33% (12/36)
回答No.10

UKIさんへ おそらくパス設定がよくわかっていないと思ったので、 パス設定なしでやる方法は・・・ と考えたら、とりあえずbinの中にソースを作って JAVACすれば、 少なくとも失敗(パスが設定されてないとか) する確率は減ると思ったのですが・ それにbinの中はそもそもexeしかないのだから 良いと思ったのですが・・・ コンパイルするソースはjavaだし、吐き出すバイナリはclassだし・・・ だめなんでしょうか・・・ 試しにやってみて簡単だったので(インストール直後で無設定で可能でした) 超初心者でどうしても設定がわからない人には第一歩として良いかなと思ったのですが・・・ クラスパスの件に関しては僕も全くその通りだと思います。 僕も過去にわからなくて、質問したら、 クラスパスクラスパス、といわれて、 本にそんなこと書いてない、といったら、本が悪いと言われて、ショックを受けました。 今ははっきりとクラスパスは不要だ!といいきることができます。 (初心者レベルではということです。)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.9

他の方もおっしゃっていますが、classpath 環境変数は初心者が意味もなくいじるとろくなことがないんですよ。 だから初心者は classpath 環境変数は設定するべきではない。いやむしろ、してはいけない。 Java 経験者も、classpath のことをちゃんと理解していれば classpath 環境変数はむやみに設定するべきではないと考えるはず。 Java を始めるに当たっては確かに環境変数の設定が必要なんですが、どの環境変数をどういう風に設定するかということに関してはいろいろと間違った情報や古い情報が出回っているので、注意が必要です。 例えばここに書いてあることもはっきりいって間違っています。 http://www.hellohiro.com/appli.htm 本当に必要な環境変数は path だけ。classpath とか java_home とか、そういう余計なものは (少なくとも最初のうちは) いらない。もしあとで必要性を感じたら、そのときに (意味を理解した上で) 設定すればいいんです。 ところで、unkojiji さん、「ソースファイルをJDKのbinディレクトリにコピーして」というのはいくらなんでもまずいですよ。すでに他のプログラムが置かれているところに自分で作ったものをいろいろと混ぜ込んだら混乱の元です。

回答No.7

#1です。 javaのクラスにクラスパスが通ってませんよ。 >2. >クラスパスは通してありますか? >確認方法: >コマンドプロンプトで >echo△%classpath% >(△は半角スペース) >と入力して表示される結果に >[javaをインストールしたディレクトリ]\bin >と >. >があればパスは通ってる。 の 「[javaをインストールしたディレクトリ]\bin」 がないでしょう? それから http://www.hellohiro.com/ は読みました? ここの左側のメニューからjavaアプリ編だったかな? を選ぶと、質問者さんがやりたいこと全部書いてありますよ? パスやクラスパスなどの環境変数の設定方法とかが OS別に詳しく書いてありますので。 とりあえず熟読してみた方がいいです。

  • unkojiji
  • ベストアンサー率33% (12/36)
回答No.6

一度クラスファイルを削除して再コンパイルしてみてください。 >Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld このエラーはたいていファイル名が間違っているときにでます。 もしかしてファイル名が「Helloworld」とかになっていませんでしょうか? 一度それでコンパイルしますと、ソースファイルの名前を書き直してコンパイルしてもなぜかクラスファイルの大文字小文字は変わってくれません。 後なにをみて勉強しているかわからないのですが、クラスパスは不要です。 binへのパスだけでいいです。変なところにクラスパスが通ってしまっているのが悪いかもしれません。 一度パスやクラスパスをすべて消して、 ソースファイルをJDKのbinディレクトリにコピーして、 コマンドプロンプトでそこに移動して、コンパイル、実行を行ってみてください。

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.5

まず javac HelloWorld.java でコンパイルしてください。コンパイルする段階ではエラーは出ないんですよね? エラーなくコンパイルできたら、 java -cp . HelloWorld で実行してみてください。 (コマンドは全部半角。スペースに注意) これでちゃんと「Hello Java World!」が表示されたら、おそらく classpath 環境変数が間違っています。 初心者のうちは classpath 環境変数は設定すべきではないので、classpath 環境変数は削除してください。 もしこれでもエラーが出たら、そのエラーメッセージをコピー & ペーストで補足してください。 (それにしてもルートディレクトリにソースファイルを置くなんて大胆なことをしますね……)

  • unkojiji
  • ベストアンサー率33% (12/36)
回答No.4

打ち込んだソースをここにコピペできますか?

pakkunkan
質問者

補足

public class HelloWorld { public static void main(String args[]) { System.out.println("Hello Java World!"); } } ________________________ 環境変数path:C:\j2sdk1.4.2_08\bin classpath:「.」 ________________________ コマンドプロント C:¥>javac HelloWorld.java C:\>java HelloWorld Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld C:\ ________________________ もう本当にさっぱりわかりません。どうかよろしくお願いします><

回答No.3

状況からすると、コンパイルには成功しているように思えます。 HelloWorld.javaと同じディレクトリ、または近辺にHelloWorld.classが出来ていませんか?

pakkunkan
質問者

補足

javac HelloWorld.java[enter] java HelloWorld[enter] Exception in thread "main"java.lang.NoClassDefFoundError:HelloWorld とでてきます。

  • unkojiji
  • ベストアンサー率33% (12/36)
回答No.2

単に java[enter] とか javac[enter] でなんとでてきましたか?

pakkunkan
質問者

補足

java[enter]で英語でいっぱいでてきました。 javac[enter]で使用可能なオプションには・・・と英語と日本語混じったものがでてきました。

回答No.1

1. javacコマンドにパスは通してありますか? 確認方法: コマンドプロンプトで echo△%path% (△は半角スペース) と入力して表示される結果に [javaをインストールしたディレクトリ]\bin があればパスは通ってる。 2. クラスパスは通してありますか? 確認方法: コマンドプロンプトで echo△%classpath% (△は半角スペース) と入力して表示される結果に [javaをインストールしたディレクトリ]\bin と . があればパスは通ってる。 3. HelloWorld.javaのあるフォルダでjavacコマンドを行っていますか? とりあえず最初の一歩であれば http://www.hellohiro.com/ あとは… このカテゴリで比較的新しい質問で 「JAVAの勉強」とか「独学でJAVA」とか… そんな感じの質問があるので、そこを見てみるといいと思います。

pakkunkan
質問者

補足

さっそくコマンドプロントでパスとクラスパスについて教えていただいた通り行ったところクラスパスで「.」とでてきます。これは間違いですか?

関連するQ&A