- PR -

cygwinでjava

投稿者投稿内容
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-02-11 14:13
お世話になります。

今、windows2000のcygwin上からjavaを使いたいのですが、
どうにもjava.lang.NoClassDefFoundErrorが出てしまいます。

恐らく、かなり初歩的なパスの設定ミスだとは思いますが
どなたかアドバイスをお願いします。
ただ、/home/xxx/ 上からjava、javac、javahとたたくと
ヘルプメッセージなどが出るのでパスは通っている気がするのですが・・・。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-02-11 17:04
Cygwinでの問題と言うよりはJavaでの問題のような気がします。
ということで板違い(?)とは思われますが、
引用:

今、windows2000のcygwin上からjavaを使いたいのですが、
どうにもjava.lang.NoClassDefFoundErrorが出てしまいます。


Cygwin上で単体でjavaコマンドを起動しても問題なく動くと言うことですよね?

それならば、どのようなコマンドを(クラスパスや起動クラスも含めて)叩いたのか、
どのようなライブラリ(例えばJakarta関連のライブラリ等)を使われているのか、
その辺を教えて下さい。
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-02-11 23:44
会社の環境ですとコンパイルは通るのですが
実行時にjava.lang.NoClassDefFoundErrorが出ます。
ちなみにプログラムはベタなHello Worldです。

家の環境だとうまくいきます。
家も会社もどちらもcygwin上でenvとやると
PATH=/cygdrive/c/j2sdk1.4.2/bin
となり、パスは通っているのかなと思いますが、なぜでしょう?
特に.bashrcなどはいじってないのですが。。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2004-02-12 00:23
JBOYさん、こんにちは。

コマンドのパスは通っているようですが,
その Hello World へのクラスパスは通っているでしょうか?
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-02-12 09:42
クラスファイルはカレントにあるので、
classpathの設定は不要だと思っていました。

カレントにあるクラスファイルに対して、
java Helloではダメで
java -cp . HelloはOKとなりました。
こういうものでしょうか?
勉強が全く足りないですね。。。
knock
会議室デビュー日: 2003/09/02
投稿数: 17
投稿日時: 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"
にすればいいかと思います。
ちば
大ベテラン
会議室デビュー日: 2003/02/14
投稿数: 114
お住まい・勤務地: 都内勤務
投稿日時: 2004-02-14 16:29
JBOYさんこんにちわ、ちばといいます。

引用:

JBOYさんの書き込み (2004-02-12 09:42) より:
クラスファイルはカレントにあるので、
classpathの設定は不要だと思っていました。



クラスファイルがカレントにあったとしても、classpathは必要です。
cygwinでログインシェルがbashだとしたら
export CLASSPATH=$CLASSPATH:.
と一回コマンド実行すれば、そのターミナルからは-cpオプションがいらなくなります。
take
ぬし
会議室デビュー日: 2002/06/06
投稿数: 265
投稿日時: 2004-02-16 10:58
なんだかJavaな話題ですが、
Linux的に考えると、
環境変数PATHが正しく設定されているから
シェルはコマンドを見つけられるわけです。
同じように、CLASSPATHをちゃんと設定してあげないと
JavaVMがクラスファイルを見つけられないわけです。

というわけで、
echo $CLASSPATH
でカレントが表示されないなら、
皆さんがおっしゃっている方法でカレントを追加してあげればOKです。

ちなみに私は
cygwinをインストールしたディレクトリ下のetcディレクトリにある
profileファイルとかを編集していろんな設定してます。

スキルアップ/キャリアアップ(JOB@IT)