[请教]我的JNI库调用,package包找不到路径
我写了一个java的jni调用文件Helloworld.java。如果我加入包命令就调用失败,java.lang.UnsatisfiedLinkError。请各位大虾和版主帮我找找原因:
========================
(1)java文件的内容
public class HelloWorld
{
public native void displayHelloWorld();
static {
System.loadLibrary("hello";
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
// System.getProperties().list(System.out);
}
}
(2)然后javac编译,javah得到头文件,写了一个libhello.so库,然后
java HelloWorld就能得到
>HelloWorld的输出。
但是:如果我在HelloWorld.java的头一行加入package abc;
然后javac编译
>javac HelloWorld.java -d .
就会在当前目录下生成名叫abc的目录:abc/HelloWorld.class。再按包的名字调用就有错误。
>java abc.HelloWorld
Exception in thread "main" java.lang.UnsatisfiedLinkError: displayHelloWorld
at dpsystem.HelloWorld.main(HelloWorld.java:9)
*************************************************************
(3)环境变量CLASSPATH和LD_LIBRARY_PATH都含有当前路径"."
(4)我的运行环境是Solaris10
> java -version
java version "1.2.2"
Solaris VM (build Solaris_JDK_1.2.2_17b, native threads, sunwjit)
我在一台Linux机器(2.6.17)和jdk1.6.03上面测试的结果是一样的。
请大家帮忙看看,我在线等,先谢过了