• ベストアンサー
  • 困ってます

javaの実行環境

  • 質問No.6628007
  • 閲覧数211
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 40% (165/403)

javaの勉強をしようと思い、以下のhelloworldコードを書いてみました。

public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello World\n");
}
}

それを、以下のようにlinux環境(ubuntu 10.10)でコンパイル実行しようとしたのですが、
javac HelloWorld.java
java HelloWorld.class

Exception in thread "main" java.lang.NoClassDefFoundError: ・・・

と怒られてしまいました。そこで色々調べて

jar cvmf manifest.mf test HelloWorld.class

とjarファイルを作成して実行したところ、適切に"Hello World"が表示されました。
(manifest.mfの中身は"Main-Class: HelloWorld"1行だけです。)

その後、このjarファイルをwindows環境に持っていって実行したのですが、
Exception in thread "main" java.lang.NoClassDefFoundError: ・・・
と怒られてしまいました。

linux環境で、"echo $CLASSPATH"を実行しても何も表示されず、CLASSPATHはどこにも通っていないようです。
また、windows環境のDOS画面にてSETを実行し、環境変数を表示させてもCLASSPATHはありませんでした。(javaはインストール済みです。)

で、質問です。

1)なぜjarにすると実行でき、classファイルのままでは実行出来なかったのでしょうか?

2)windows環境で、CLASSPATHを設定したほうが良いのでしょうか?設定する場合は、prgramfiles\java\binで良いのでしょうか?

以上、長くなり申し訳ないのですが、よろしくお願いします。

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 23% (3656/15482)

クラスファイルのままで実行したいなら
java HelloWorld
でいいんじゃないの?

Exception in thread "main" java.lang.NoClassDefFoundError: ・・・
の「・・・」を読めばわかるかもしれん.
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ