現在、JNIを使用したクラスを作成しています。
しかし、
Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloJNI.hello()V at HelloJNI.hello(Native Method) at HelloJNI.main(HelloJNI.java:15)
というエラーが発生しています。
コードは、
Hello.c
C
1#include "HelloJNI.h" 2/** Java_HelloJNI_helloのHelloJNIはあとで作るJavaのクラス名、helloはあとで作るnativeメゾット名です 3。 */ 4JNIEXPORT void JNICALL Java_HelloJNI_hello( JNIEnv *env, jobject obj ) 5{ 6 printf( "Hello World!\n" ); 7} 8
HelloJNI.java
java
1public class HelloJNI 2{ 3 static 4 { 5 // ライブラリのロード。あとで作るlib***.soの***と一致させます。 6 System.loadLibrary( "hello" ); 7 } 8 9 // nativeメゾットの宣言 10 public native void hello(); 11 12 public static void main( String[] args ) 13 { 14 HelloJNI hello = new HelloJNI(); 15 hello.hello(); 16 } 17} 18
ファイル構成はすべて同一ファイルです。
Javaのバージョンはjava version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) Client VM (build 25.172-b11, mixed mode)、
たぶん32bitのはず…
windowsです。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー