精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-09
JianPinNative.java中的System.loadLibrary("EasySpell"); 我的dll在system32,这个类的包下面, 这个类的class旁边都有, 在cmd下面进入运行这个类时能得到正确的测试结果,但在Eclipse下面,启动Tomcat时, 这个类的System.loadLibrary("EasySpell");报错, 找不到dll文件(java.lang.UnsatisfiedLinkError)。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-09
我以前也做过jni,在cmd下确实能得到结果,实际环境确实不能原因在于dll不能放到package目录下,所以我当时就放到src根目录下了,那个java类也放到src根目录下,然后问题就没有了
|
|
返回顶楼 | |
发表时间:2007-03-09
可以指定classpath
想想jdk不也用了N多的JNI么...原理一样 |
|
返回顶楼 | |
发表时间:2007-03-09
再问一个很弱智的问题:
我可以把类拿到src下面, 但是别的包里面的类调用它的时候怎么调呢?? |
|
返回顶楼 | |
发表时间:2007-03-09
类放在SRC但是编完的class是放在一起吧....
|
|
返回顶楼 | |
发表时间:2007-03-09
System.out.println("java.library.path :"+System.getProperty("java.library.path")); 在cmd和Tomcat下打出来的内容一样。 我在jdk的bin下面放了dll也不行,为什么cmd下可以读到,但是在Tomcat下面就读不到了呢??? |
|
返回顶楼 | |
发表时间:2007-03-09
抛出异常的爱 写道 类放在SRC但是编完的class是放在一起吧....
不是,用的是Ecplise编译的,类在classes目录下 |
|
返回顶楼 | |
发表时间:2007-03-09
echo %PATH% 下面的路径中的一个!
|
|
返回顶楼 | |
发表时间:2007-03-09
qing_pu 写道 再问一个很弱智的问题:
我可以把类拿到src下面, 但是别的包里面的类调用它的时候怎么调呢?? 这个你要通过ClassLoader来读取了,普通的方法是找不到这个类的,因为这个类没有package,具体我也不记得了,一年半前做的东西了 引用 类放在SRC但是编完的class是放在一起吧....
虽然放在一起,但是因为那个调jni的类没有package,所以其他有package的类是找不到的
|
|
返回顶楼 | |
发表时间:2007-03-09
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.5.0_09\bin\EasySpell.dll: Can't find dependent libraries at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676) at java.lang.Runtime.loadLibrary0(Runtime.java:822) at java.lang.System.loadLibrary(System.java:993) at JianPinNative.<clinit>(JianPinNative.java:8) 现在能找到dll,但是又报了个新的错误,代码在上面。 |
|
返回顶楼 | |