2012-07-26 76 views
1

我在ubuntu上运行我的第一个程序。运行JNI程序

但是,当我试图运行它的错误:发现

public class HelloWorld { 
public native String nativeHelloWorld();  

static { 
    System.loadLibrary("HelloWorld"); 
} 

public void print(){ 
{ 
String str = nativeHelloWorld(); 
System.out.println(str); 
} 
} 


public static void main(String[] args) { 
    (new HelloWorld()).print(); 
     return; 
} 
} 

此错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError:HelloWorld.nativeHelloWorld()Ljava/lang/String; 

我怎样才能解决这个问题?从Getting Stated JNI from SUN site采取

+0

你用android吗? – Waqas 2012-07-26 07:47:29

+0

是的,我正在使用android。 – TamiL 2012-07-26 09:52:27

回答

0

这些线

确保本地库驻留在目录中的一个 本地库路径。如果您在Solaris系统上运行,则使用 LD_LIBRARY_PATH环境变量来定义本机 库路径。确保它包含包含libHelloWorld.so文件的目录 的名称。如果libHelloWorld.so文件 是在当前目录下,你可以发出以下两个命令 在标准shell(SH)或KornShell(KSH)建立正确的 LD_LIBRARY_PATH环境变量:

LD_LIBRARY_PATH=. 
export LD_LIBRARY_PATH 
0

对于运行Android JNI程序,你应该看看步骤描述here,您将需要使用此命令

cd <ndk-root>/samples/hello-jni 
<ndk_root>/ndk-build 

成功构建后,您将得到建立,原生码T他在这个目录中的.so文件,

\hello-jni\libs\armeabilib\hello-jni.so 

假设你正试图从SDK执行HelloJNi示例程序。一旦你在libs目录下得到了这个文件,使用eclipse simple run按钮运行这个项目,你将拥有你的HelloWorld :)。