※ ChatGPTを利用し、要約された質問です(原文:javaの実行環境)
javaの実行環境におけるjarファイルの実行とCLASSPATHの設定
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で良いのでしょうか?
以上、長くなり申し訳ないのですが、よろしくお願いします。