【初心者】 Java質問・相談スレ29 【大歓迎】

このエントリーをはてなブックマークに追加
>>28
クラスパス非推奨ってどういうこと?
全部extフォルダに入れるとか、IDE使えってこと????
32デフォルトの名無しさん:03/08/01 11:40
>>31
環境変数に設定するのを非推奨にしようってことだろ?
全部extフォルダに入れるなんてもってのほか。
コンパイル時や実行時に個別に指定するほうがイイってこと。
AntとかIDE使うのもその手段の一つだが。

いまだにJ2EEアプリ実行するのに実行ユーザの環境変数に
クラスパス設定するヤシとかextにライブラリ入れるヤシとかいて
あきれるな。
究極は

java.lang.String s=new java.lang.String("text");

とか推奨か?
環境変数のCLASSPATHは使わないほうがいいでしょ。

CLASSPATHが設定されていなければ
c:\somewhere>java HelloWorld
が動作する。

CLASSPATHが変なところに設定されているから動かなくなるだけ。

いっぱいjarファイルが必要なアプリはバッチファイルを作って、
set JARS=foo.jar;bar.jar
java -classpath %JARS%;. net.2ch.SomeApp
とでもすればいい。
>33
java.langはimportしなくても使えるぞ。
36デフォルトの名無しさん:03/08/01 12:04
>>33
クラスパスとimport混同してない?
こんなヤシは>>2見れ
37デフォルトの名無しさん:03/08/01 12:09
クラスパス非推奨派は理由を述べないな
38デフォルトの名無しさん:03/08/01 12:14
>>37
ポータビリティが低下するからに決まってんだろ。
そんなことわざわざ言ってもらわないとわからなのか・・・・?
39ただの見物人:03/08/01 12:16
わかんねーよ。Javaしらねーし
>37
SUNはこう言ってるが。

The -classpath option is preferred because you can set it individually for each application
without affecting other applications and without other applications modifying its value.

ttp://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/classpath.html
41デフォルトの名無しさん:03/08/01 12:25
classpathオプションが好まれる?
42デフォルトの名無しさん:03/08/01 12:29
>>41
そう。環境変数に設定せずに、実行時に指定する方法が推奨。
必要なクラスパスはアプリによって違うからな。
-classpath オプションが推奨されているのは、アプリケーションごとに個別に設定できるので、
ほかのアプリケーションに影響を与えたり、ほかのアプリケーションからこの値が変更されたりすることがないためです。
44デフォルトの名無しさん:03/08/01 12:31
つまり環境変数は使わずにオプションを使えってことか。
45デフォルトの名無しさん:03/08/01 12:34
>>44
よくできました
インストールするとCLASSPATHを設定するアフォなアプリもあるから、
初心者向けのQ&Aとしてはこんな感じか?

Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
java -cp . Hello
と設定する。「-cp」の後ろの「.」を見落とさないように!
「.」の前後には半角空白が必要です。
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02
を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。
コマンドプロンプトで、
java -cp . Hello
と実行する。「-cp」の後ろの「.」を見落とさないように!
~~~~~~~~~~
の間違い。