2
我已經做了一個接受字符串作爲用戶輸入的java程序。現在我已經在Visual C++中編寫了它的代碼。當我從netbeans運行我的程序時,它顯示這個異常。異常JNI(Ljava/lang/String;)Ljava/lang/String;
Exception in thread "main" java.lang.UnsatisfiedLinkError: Prompt.getLine(Ljava/lang/String;)Ljava/lang/String;
at Prompt.getLine(Native Method)
at Prompt.main(Prompt.java:19)
這是什麼問題。需要幫忙。由於
這是Java代碼
public class Prompt {
/**
* @param args the command line arguments
*/
private native String getLine(String prompt);
public static void main(String[] args) {
// TODO code application logic here
Prompt p = new Prompt();
String input = p.getLine("Type a line:");
System.out.println("User Typed:" + input);
}
static {
System.loadLibrary("Prompt");
//System.load("C:/Program Files/Java/jdk1.6.0/bin/Prompt.dll");
}
}
,這是C++代碼
#include "stdafx.h"
#include "jni.h"
#include "jni_md.h"
JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *env, jobject obj, jstring prompt)
{
char buf[128];
const char *str;
str = env->GetStringUTFChars(prompt,0);
if (str == NULL) {
return NULL; /* OutOfMemoryError already thrown */
}
printf("%s", str);
env->ReleaseStringUTFChars(prompt, str);
/* We assume here that the user does not type more than
* 127 characters */
scanf("%s", buf);
return env->NewStringUTF(buf);
}
你有沒有加載dll?你可以發佈你的代碼嗎? – 2010-10-06 06:45:34
是的,我已經加載它,當然我會發布它 – 2010-10-06 06:46:33
'System.loadLibrary(「提示」);'是不是應該是DLL的路徑相同的評論之一? – 2010-10-06 06:54:29