- - PR -
JNIがうまくいきません。
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-09-06 11:06
初心者ながらJNIを使ってみましたが、うまくいきませんでした。
以下のようなソースでJNIを使ったプログラムを作成したのですが、 Hello.dllファイルをMain.classファイルのフォルダにコピーして DOSでjava Mainを実行したところ、以下のようなエラーが出ます。 Exception in thread "main" java.lang.UnsatisfiedLinkError: Write at Main.Write(Native Method) at Main.main(main.java: クラスファイルの作成、dllの作成も無事うまくいっているのに、 どうしてこのようなエラーがでるのでしょうか。 すいませんが、教えていただくようよろしくお願いいたします。 /** Main.java **/ public class Main { public static void main(String arg[]) { System.loadLibrary("Hello"); Write(); } static public native void Write(); } /** Main.h **/ /* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class Main */ #ifndef _Included_Main #define _Included_Main #ifdef __cplusplus extern "C" { #endif /* * Class: Main * Method: Write * Signature: ()V */ JNIEXPORT void JNICALL Java_Main_Write (JNIEnv *, jclass); #ifdef __cplusplus } #endif #endif /** Hello.cpp **/ #include <stdio.h> #include "..\Main.h" JNIEXPORT void JNICALL Java_Main_write (JNIEnv *, jclass) { printf("Hello\n"); } | ||||
|
投稿日時: 2004-09-06 11:33
おそらく、ファンクション名のWが小文字になっています。Java_Main_write ではなくて Java_Main_Write です。(ただのタイプミスならごめんなさい)
| ||||
|
投稿日時: 2004-09-06 11:46
H2様ありがとうございました。
解決できました。 またよろしくお願いいたします。 | ||||
1
