質問: お世話になります。 LinuxからJNIを実行したいと思い、 http://www5.big.or.jp/~tera/Labo/jni/jni1.html#Javah 上記サイトのHelloWorldを実行してみたのですがうまくいきません。 (上記と実際のソースでの違う箇所はパッケージ宣言があること) Eclipse上でコンパイルされたクラスファイルに対してコマンドプロンプトから ヘッダファイルを作成、CのソースはLinuxで書いてgccコマンドでsoファイルを作成しました。 そのあと、java -Djava.library.path=[soのディレクトリを指定] jp.~.HelloWorld を実行したのですがException in thread "main" java.lang.UnsatisfiedLinkError: jp.~.HelloWorld.printMessage()V と表示されてうまくいきませんでした。 何か設定の方法が間違っているのでしょうか? よろしくお願いいたします。
回答: C側のメソッド名が生成されたヘッダファイルと同じになっていなかったのが原因でした。