前提・実現したいこと
nativeファイルをJNIで呼び出したいのですが、エラーが発生します。
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.UnsatisfiedLinkError: GameMain.MessageBox(Ljava/lang/ String;Ljava/lang/String;)I at GameMain.MessageBox(Native Method) at GameMain.main(GameMain.java:12)
該当のソースコード
Java
1public class GameMain 2{ 3 static 4 { 5 String path = System.getProperty( "user.dir" ); 6 System.load( path + "\native\Message32.dll" ); 7 } 8 9 public static void main( String[] args ) 10 { 11 GameMain gm = new GameMain(); 12 gm.MessageBox( "hello!", "message" ); 13 } 14 15 public native int MessageBox( String message, String title ); 16}
C
1#include <windows.h> 2#include <tchar.h> 3 4#include "jni.h" 5#include "GameMain.h" 6 7JNIEXPORT jint JNICALL Java_GameMain_MessageBox( JNIEnv *env, jobject obj, jstring message, jstring title ) 8{ 9 return 0; 10} 11
試したこと
パスは何度も確認しました。getPropertyも使用して極力閣僚を少なくしましたが、エラーは一緒です。パスにファイルがないということまではわかるのですが・・・
後、できたらJNAやSwigは使いたくないです。
補足情報(FW/ツールのバージョンなど)
Java8 32bit、Windows10です。IDEは使っていません。
C側はMinGW32bitです。
回答1件
あなたの回答
tips
プレビュー