- - PR -
cygwinでjava
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-11 14:13
お世話になります。
今、windows2000のcygwin上からjavaを使いたいのですが、 どうにもjava.lang.NoClassDefFoundErrorが出てしまいます。 恐らく、かなり初歩的なパスの設定ミスだとは思いますが どなたかアドバイスをお願いします。 ただ、/home/xxx/ 上からjava、javac、javahとたたくと ヘルプメッセージなどが出るのでパスは通っている気がするのですが・・・。 | ||||
|
投稿日時: 2004-02-11 17:04
Cygwinでの問題と言うよりはJavaでの問題のような気がします。
ということで板違い(?)とは思われますが、
Cygwin上で単体でjavaコマンドを起動しても問題なく動くと言うことですよね? それならば、どのようなコマンドを(クラスパスや起動クラスも含めて)叩いたのか、 どのようなライブラリ(例えばJakarta関連のライブラリ等)を使われているのか、 その辺を教えて下さい。 | ||||
|
投稿日時: 2004-02-11 23:44
会社の環境ですとコンパイルは通るのですが
実行時にjava.lang.NoClassDefFoundErrorが出ます。 ちなみにプログラムはベタなHello Worldです。 家の環境だとうまくいきます。 家も会社もどちらもcygwin上でenvとやると PATH=/cygdrive/c/j2sdk1.4.2/bin となり、パスは通っているのかなと思いますが、なぜでしょう? 特に.bashrcなどはいじってないのですが。。 ![]() | ||||
|
投稿日時: 2004-02-12 00:23
JBOYさん、こんにちは。
コマンドのパスは通っているようですが, その Hello World へのクラスパスは通っているでしょうか? | ||||
|
投稿日時: 2004-02-12 09:42
クラスファイルはカレントにあるので、
classpathの設定は不要だと思っていました。 カレントにあるクラスファイルに対して、 java Helloではダメで java -cp . HelloはOKとなりました。 こういうものでしょうか? 勉強が全く足りないですね。。。 | ||||
|
投稿日時: 2004-02-14 16:22
こんにちは。
私も cygwin から java を利用する時に同じように悩みました。 以下のページのように Wrapper を通すことでうまくいくようです。 http://www.mars.dti.ne.jp/~sohda/cygwin/java.html JBOY さんの環境だと、Wrapper の WIN32JDKDIR=/usr/local/j2sdk1.4.0 の部分を WIN32JDKDIR="/cygdrive/c/j2sdk1.4.2" にすればいいかと思います。 | ||||
|
投稿日時: 2004-02-14 16:29
JBOYさんこんにちわ、ちばといいます。
クラスファイルがカレントにあったとしても、classpathは必要です。 cygwinでログインシェルがbashだとしたら export CLASSPATH=$CLASSPATH:. と一回コマンド実行すれば、そのターミナルからは-cpオプションがいらなくなります。 | ||||
|
投稿日時: 2004-02-16 10:58
なんだかJavaな話題ですが、
Linux的に考えると、 環境変数PATHが正しく設定されているから シェルはコマンドを見つけられるわけです。 同じように、CLASSPATHをちゃんと設定してあげないと JavaVMがクラスファイルを見つけられないわけです。 というわけで、 echo $CLASSPATH でカレントが表示されないなら、 皆さんがおっしゃっている方法でカレントを追加してあげればOKです。 ちなみに私は cygwinをインストールしたディレクトリ下のetcディレクトリにある profileファイルとかを編集していろんな設定してます。 |