「これはヤバかったな」という遅刻エピソード

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)

と表示されうまくいきません。

どうしたらよろしいでしょうか?

A 回答 (3件)

原因があまりにも考えられすぎるわね。


dllが見えていないのか
dllのつくりに問題があるのか
とりあえず、前者ならちゃんとパスの通る場所に置けばいいし、
後者なら、もっとシンプルなJNI(HelloWorldとかね)で
やり直すことね。

HelloWorldすらできないのなら
まずはそこからよ。

HelloWorldができるなら
面倒でもそこから一個ずつ拡張していくのが
一番の近道よ。

この回答への補足

ご回答ありがとうございます。

ご指摘通りHelloWorldを作りました。同じくコマンドプロンプト上では実行できました。しかし、同じくeclipseでは動きません。
dllがないときは

java.lang.UnsatisfiedLinkError: no JNISample in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at Sample.<clinit>(Sample.java:4)
Exception in thread "main"

と表示され、あるときは

Exception in thread "main" java.lang.UnsatisfiedLinkError: Sample.hello()V
at Sample.hello(Native Method)
at Sample.main(Sample.java:12)

と表示されるので一応dllは認識しているようですが、ネイティブメソッドが動いてくれません。何がどういけないのでしょうか?

補足日時:2009/05/05 23:12
    • good
    • 0

> Eclipse上で動かない


もしかして何も用意していない?
http://www-online.kek.jp/~inoue/index.html/index …
ここも見ていない?
    • good
    • 0

だったら。



http://www.hellohiro.com/native.htm
を参考にしてみなさい。
何か手順が間違っているのよ。

この回答への補足

はい、ご提示されたサイトを参考にdllを作りました。その通り作ってコマンドプロンプト上では動きました。

問題なのはEclipse上で動かなくなることです。

補足日時:2009/05/08 19:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報