- ベストアンサー
CLASSPATHについてなんですが。
Javaの7月分のファイルを Java7 というフォルダに保存しておきました。7月の中旬までは、普通に実行できました。しかし、7月後半ぐらいから、java -classpath javaファイル名 をコマンドラインから入力しないと、実行できません。 で、それから10日ぐらいたって、7月30日に Java8という8月分のフォルダを作りました。最初は、普通に実行できました。しかし、Cドライブが容量満杯になったため、Dドライブに移しました。で、今日新しいファイルをコンパイルして、実行しようと思ったんですが、またclasspathを一緒に入力しないと、実行できなくなってしまいました。 以前から、時々このような理不尽なことが起きて、大変めんどくさいです。Java実行マシンはなぜこのようなことがおきるのでしょうか? 原因の分かる方は、ご回答よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
あ、確かに。 JSPは1回目の起動時にコンパイルされるのですが、 そのときにtool.jarを必要とします。 そういう意味で追加しているのであれば、それでいいと思います。 でもTomcatを使っているのであれば、環境変数JAVA_HOMEを設定してあげれば かってにlibを探します。
その他の回答 (3)
- sasadora
- ベストアンサー率68% (59/86)
やはりカレントディレクトリがCLASSPATHに加えられていないです。 環境変数の設定で、.を加えてください。(ドット) これらの内容は、自分で環境変数の設定をしたのですよね? でしたら設定はできますよね? [.;D:\j2sdk1.4.~] (.もCLASSPATHに追加されているのに注目) こうなればOKです。 あと、j2sdk1.4.0_01のlibや、通常はtools.jarは要らないかと思うんですが、 なにか意図があるんでしょうか?
お礼
2度のご返事ありがとうございました。クラスパスをカレントディレクトリに設定すればいいということですよね。どうもありがとうございます。やってみます。 そう言われてみればそうですよね。気付きませんでした。なお、最後の j2sdk1.4.0_01 と tool.jar は何かの本に書いてあったような気がするんですが。。。たしか、サーブレットの本に書いてあったんです。サーブレットのコンパイルをするときに、必要と書いてありました。 とりあえず、2度も書いていただいてどうもありがとうございました。 これで、できると思います。どうもありがとうございました。
- sasadora
- ベストアンサー率68% (59/86)
他に原因があるはずで、日付は関係ないと思います。 これだけの情報からでは判断しようがないので、以下のことを教えてもらえませんか? 1.コマンドラインから、 echo [%CLASSPATH%] と実行して、何が表示されますか? [%CLASSPATH%]と表示されますか?それともなにかパスが表示されますか? 2.あなたのOSについて教えてください。
お礼
ご回答ありがとうございます。echo[%CLASSPATH%]と入力すると、以下のものが出ます。 C:\>echo [%CLASSPATH%] [D:\j2sdk1.4.0_01\jre\lib;D:\j2sdk1.4.0_01\lib;D:\j2sdk1.4.0_01\lib\tools.jar;D: \Program Files\Apache Tomcat 4.0\common\lib\servlet.jar;D:\Program Files\Apache Tomcat 4.0\webapps\jsp10\WEB-INF\classes] OSについてなんですが、WinXPのHomeEditionです。 私も、日付が原因とは考えていないのですが、急に突然、カレントディレクトリのプログラムを実行できなくなったり、偶然作成したフォルダのプログラムは実行できたりするので、困っています。しかし、最近、何回かフォルダを作って、そこでプログラムをコンパイル、実行したんですが、やはりだめみたいです。 分かりますでしょうか?もし分かるようなら、ご返事ください。よろしくお願いします。
- misoka
- ベストアンサー率35% (56/160)
CLASSPATHが日付と関係しているということはないでしょうから、 原因は別にあると思います。 まず、基本的にCLASSファイルのあるディレクトリに移動してから javaコマンドを実行していないとダメだと思います。 それから、独自にCLASSPATHをSETしている場合は、設定の仕方に よってはダメかもしれません。たとえば、CLASSPATHに.が含まれて いなければ、カレントディレクトリのCLASSについても、CLASSPATH をいちいち指定しなくてはいけなくなるかもしれません。
お礼
僕のJVMは、良くこのようなことがあり、大変困ってます。カレントディレクトリに保存し、コンパイル実行してもだめなんです。普通は大丈夫ですよね。 Dドライブに移してから、急に実行できなくなってしまうんです。そのディレクトリでコンパイルをしたんですけど。。 どうかんがえても、おかしいですよね。ふつう、そのディレクトリでコンパイルしたものは、classpathを指定しなくても実行できますよね。 どうも、ご回答ありがとうございました。また、どこかでお会いしましょう。
お礼
どうもありがとうございます。tools.jarには、そういう意味があるんですね。1つ勉強になりました。今まで、JAVA_HOME とかどういう意味があるか分からなかったものですから。。。 どうも色々とありがとうございました。勉強になりました。また、今度の時も、よろしくお願いします。では、また。