• 締切済み

eclipse + WTPでライブラリパスが無効になる?

Eclipse 3.1 + WTP 1.0でサーブレットを作成しています。 このサーブレットからJNIを使用して外部DLLを実行する という構成になっています。 (実際にはJBuilderからの移行で、サーブレット自体に 問題がある可能性は低いです) WTPを実行すると、Tomcat5.5が立ち上がり、サーブレットが 起動しようとするのですが、外部DLLがないというJavaの エラーが出てしまいます。(下記) 「java.lang.UnsatisfiedLinkError: no ライブラリ名 in java.library.path」 また、WTPプロジェクトではなく、Javaプロジェクトだと 同じJNI+DLLの構成でも正常に動作するのです。 このことから、Tomcatが実行したときに環境変数Pathが 無効になっているのではないかと推察しました。 そこで、eclispeのパッケージエクスプローラの「サーバー」 内の「Tomcat v5.5サーバー」で「構成と実行」を開いて 「環境」でPathを設定してみたのですが、うまくいきません。 「引数」でD引数を指定しても駄目なのです。 どなたか解決方法をご存知の方いらっしゃらないでしょうか。 よろしくお願いします。

みんなの回答

回答No.1

VM引き数に -Djava.library.path=~ と指定すれば反映されると思うんですが。(JSPで確認した限りでは) 引き数を再確認してみては。 (ちなみに確認したのはXP(SP2)/Eclipse3.1.2(NLPack無し)/WTP1.0/JDK1.5.0_06/Tomcat5.5.15)

Automaton
質問者

お礼

回答ありがとうございます。 お礼が遅れてすみませんでした。 >VM引き数に -Djava.library.path= VM引数もやってみたのですが、ダメでした。 XP(SP2)/Eclipse3.1.2(NLPack無し)/WTP1.0/JDK1.5.0_06/Tomcat5.5.15 の構成でもだめでした。 eclipseのバージョン(3.1.1,3.1.2)、JDKのバージョン(1.5,1.4) Tomcatのバージョン(4,5.0,5.5)、いろいろな組み合わせで やってみたのですが、それでもダメでした。 マシンOSの変更、JSPの直呼び出しでも・・・ なにか根本的な違いがあるのかもしれません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Eclipseで別プロジェクトをTomcatで使用

    EclipseにTomcatプラグインを入れて Tomcatプロジェクトでサーブレットを作ってます。 そしてこのTomcatプロジェクトから別のライブラリプロジェクトを読み込んでいます。 EclipseのJavaのビルドパスにこのライブラリプロジェクトを指定しているので Eclipseから実行した場合はきちんとこのライブラリプロジェクトを利用して実行できます。 (リアルタイムでライブラリプロジェクトの修正が反映されます) しかしTOMCATでサーブレットを実行した場合にはこのライブラリプロジェクトを読み込んでくれないようで ClassNotFoundExceptionになってしまいます。 ライブラリプロジェクトをJarにしてTomcatのlib以下に置いてやればきちの読み込まれますが できればTomcatプラグインを使って実行した際にライブラリプロジェクトもコンパイルしてTOMCATに読み込ませてライブラリプロジェクトの変更内容もリアルタイムで反映させたいです。 そういう風にするにはどこで設定すればよろしいでしょうか? Eclipse Keplerを使ってます。

    • ベストアンサー
    • Java
  • Eclipse3.1WTPのデプロイ設定について

    Eclipse初心者です。 Eclipse3.1WTP+Tomcat5.5を使用してサーブレットの開発をしています。 手始めにサンプルとして動作実績のあるプロジェクトをeclipseフォルダごと頂いて私のPC(WindowsXP SP2)に展開したのですがindex.htmlを実行すると次のエラーが表示されます。「No launchable artifact could be found in the selection」デプロイが選択されてないといったエラーのようですが回避策をご教授いただけないでしょうか?よろしくお願いします。

    • ベストアンサー
    • Java
  • eclipseでのjar生成について

    eclipseで実行可能なjarファイルを作成しようとしているのですが、 以下のようなエラーが出てしまい作成はできても、実行することができずにいます。 java.lang.UnsatisfiedLinkError: no dsj in java.library.path Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: de.humatic.dsj.DS Filtergraph.initMethodIDs()V at de.humatic.dsj.DSFiltergraph.initMethodIDs(Native Method) at de.humatic.dsj.DSFiltergraph.<clinit>(SourceFile:143) at media.VideoDSJ.init(VideoDSJ.java:41) at media.VideoDSJ.<init>(VideoDSJ.java:35) at JavaLive.JavaLive.run(JavaLive.java:137) エラーを見てみる限り、外部ライブラリーとして使っているdsjへのパスがうまくできていないと思うのですが、 プロジェクト自体にimportしていますし、必須ライブラリーをパッケージするように出力をしていますがうまくいきません。 配布したあとは特にライブラリ等をインストールを必要とせずに実行させたいので、なんとか中にライブラリーを包括したいのですが、 何かいい方法は無いでしょうか?

    • ベストアンサー
    • Java
  • Eclipseにdllがうまく読み込めない

    JNIを使った開発をしてdllを作りました。 コマンドプロンプト上ではうまく動くのですが、eclipseに取り込んで実行の構成から環境変数を入れましたが、 Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: controller.Joystick.getXPos(I)F at controller.Joystick.getXPos(Native Method) at controller.Joystick.getXPos(Joystick.java:45) at controller.ControllerSample.run(ControllerSample.java:20) と表示されうまくいきません。 どうしたらよろしいでしょうか?

    • ベストアンサー
    • Java
  • dll ⇒ 自作dl ⇒ Java

    お世話になっております。 何度も質問して申し訳ないですが、わかる方いらっしゃれば ご回答よろしくお願いいたします。 現在JavaでJNIを使用し、呼び出したC++からハードウェアへ 接続するというプログラムを開発しております。 その際、C++をdll形式にして、そのdllをJavaで呼び出すような形なのですが 私が使用しているコンピュータ(Windows 7)では、ハードウェアへの接続ができています。 コマンドを送信し、レスポンスを取得し、Javaのプログラムで表示ができます。 しかし、別のコンピュータ(Windows XP)で、開発したプログラムを実行すると dllを読み込む時点で下記のエラーが出てしまいます。 java.lang.UnsatisfiedLinkError: no JNI001 in java.library.path JNI001がC++で作成したdllです。 JNI001.dllは、実行したプログラムと同じフォルダにありますので、おかしいなと思いまして C:\Windows へ入れてみても結果は変わりません。 私が使っていたコンピュータのeclipseをまるまるコピーして実行しても効果なし。 環境変数も私のコンピュータとほとんど変わりません。 XPのJavaをインストールし直しても変わりません。 フォルダ階層やフォルダ名などチェックしましたが、7とXPで変わった点もないように思います。 そこで、少し気になったのですが、 現在開発中のプログラムは Java → JNI001.dll → ○○.dll → ハードウェア ○○.dllはハードウェアを動かすためのdllです。 上記の仕様に問題があるのでしょうか。 それでは私のコンピュータで接続できている理由がわからなくなりますが ・・・もう、なにもわかりません どうか、ご教授宜しくお願い致します。

  • Java JNI C++リンク dll読み込まない

    お世話になっております 何度も質問して申し訳ないですが、わかる方いらっしゃれば ご回答よろしくお願いいたします。 現在JavaでJNIを使用し、呼び出したC++からハードウェアへ 接続するというプログラムを開発しております。 その際、C++をdll形式にして、そのdllをJavaで呼び出すような形なのですが 私が使用しているコンピュータ(Windows 7)では、ハードウェアへの接続ができています。 コマンドを送信し、レスポンスを取得し、Javaのプログラムで表示ができます。 しかし、別のコンピュータ(Windows XP)で、開発したプログラムを実行すると dllを読み込む時点で下記のエラーが出てしまいます。 java.lang.UnsatisfiedLinkError: no JNI001 in java.library.path JNI001がC++で作成したdllです。 JNI001.dllは、実行したプログラムと同じフォルダにありますので、おかしいなと思いまして C:\Windows へ入れてみても結果は変わりません。 私が使っていたコンピュータのeclipseをまるまるコピーして実行しても効果なし。 環境変数も私のコンピュータとほとんど変わりません。 XPのJavaをインストールし直しても変わりません。 フォルダ階層やフォルダ名などチェックしましたが、7とXPで変わった点もないように思います。 そこで、少し気になったのですが、 現在開発中のプログラムは Java → JNI001.dll → ○○.dll → ハードウェア ○○.dllはハードウェアを動かすためのdllです。 上記の仕様に問題があるのでしょうか。 それでは私のコンピュータで接続できている理由がわからなくなりますが ・・・もう、なにもわかりません どうか、ご教授宜しくお願い致します。

  • eclipseで「サーバーで実行」表示が出る

    プロジェクト作成のとき (1)「tomcatプロジェクト」から作成する (2)サーブレットも「クラスを作成」から作成していく (3)JSPも「ファイル」から作成していく というやり方をして作ると「実行」を押しても Javaアプリケーションで実行というものしかでてきません 解説本をみると内容が古いのであらゆるものが現在のeclipseとことなってて 動かし方がわからずこんなことをしています

  • eclipseから直接サーブレットを配備するには?

    eclipse WTP でサーブレットを作っています 開発中の動作確認は「サーバーで実行」でやってるのですが、 外向きのサーバーで動かすときはWARに書き出してTomcatに付いている Web Application Managerから配備しています この外向きのサーバーに配備・差し替えする手順をeclipse上からワンクリックでやる方法はありませんか? 外向きのサーバーには他の人が配備したアプリがあって、それには影響が出ないようにしたいのです

  • eclipseでSWTのアプリケーションが実行できない

    eclipse3.0にVisualEditerを入れています。 しかしSWTのアプリケーションが実行できずに困っています。 ビルドまではできているようなのですが、 実行しようとすると、 java.lang.UnsatisfiedLinkError: no swt-win32-3064 in java.library.path とコンソールにでています。 プロパティで見ると、Jarを追加とあるのですが、swt-win32-3064は\eclipse-SDK-3.0.2-win32\eclipse\plugins\org.eclipse.swt.win32_3.0.2\os\win32\x86 に存在するものの、dllです。 なにをどうすればいいのかわからないです。 何か気がついた点がある方よろしくお願いします。

    • ベストアンサー
    • Java
  • Eclipseにおけるサーブレット作成時のエラー(TOMCAT)

    JAVA初心者です。非常に困っておりどうしてよいのかわかりません。よろしくお願いいたします! eclipseにてサーブレットを作成したのですが、実行ができません。 ---------- 環境 OS:Windows2000Server Eclipse ver2.1.1 TOMCAT ver4.1 プロジェクト名Sample 実行ファイルHelloSrvlet.java ---------- "web.xml"をエクリプスのプロジェクト下のWEB-INFに作成した場合に『HTTP Status 404』エラーが表示されてしまいます。 servlet.xmlにも<context・・・と設定はしております。web.xmlを作成しなかった場合にはadmin上でSampleがありディレクトリ構成も見えるのですが、作成するとディレクトリ構成も見えなくなります。何が悪いのかすらわからない状況です。 どなたか教えて下さい!

    • ベストアンサー
    • Java