JAVA UnsatisfiedLinkError(调用Delphi的DLL)

来源:互联网 发布:传奇霸业修罗血符数据 编辑:程序博客网 时间:2024/05/10 08:39

JNI为调用DLL提供了接口,网上文章很多,一般调用的结构为:

package callDll.test;


public class Cdll {

 static {
        System.loadLibrary("javaCall");
    }
    public native String fstring(String s);

 

但使用时会出现UnsatisfiedLinkError

 这种错误一般是加载用JNI加载DLL时出的问题,有两类问题:

1.

   错误信息:UnsatisfiedLinkError: NO XXXXX in java.liberary.path

   原因: 显然是找不到指定的DLL或者包,那就去找吧

   解决方法:首先可以通过用System.load(“全路径”);加载,看能不能成功,如果成功,那说明你的系统环境没配好。若是不成功,则说明该DLL或包是缺少的,仔细查找都应该能找到。

 

2. 错误信息:UnsatisfiedLinkError:fstring;

   原因:这是说明该方法与声明不符合。

  解决方法:这个问题是我将两个Java工程合并时发现的问题,合并之后调用怎么都不好用。后来发现合并后Cdll所在的包 对调用有很多影响,这跟在delphi中开发给java调用的dll在导出方法时的命名规则相关。 以上述为例:在delphi中其方法名为 Java_test_Cdll_fstring, 该命名规则为Java_<包路径,其中的"."以"_"代替>_类名_方法名。 所以在合并工程后有两种方法:一是修改一下包结构;二是修改delphi中dll的方法名,改为 Java_callDll_test_Cdll_fstring 即可

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩子学数学用手指算怎么办 孩子d和b分不清怎么办 和家人走散后怎么办幼儿教案 小孩胃口不好不爱吃饭怎么办 幼儿园孩子学习记不住怎么办 幼儿园小孩数字记不住怎么办 大班教案走丢了怎么办 ppt加视频反了怎么办 拔罐之后背疼怎么办 拔完火罐后背疼怎么办 打印机红色的口堵了怎么办 打印机红色复印不出来怎么办 打印机加错颜色墨水怎么办 中班安全教案脚扭伤了怎么办 中班脚扭伤了怎么办教案 中班安全脚扭伤了怎么办 中班安全脚扭伤了怎么办反思 走丢了怎么办教案反思 汽车后轱辘不转怎么办 走丢了怎么办社会教案 小老鼠搬鸡蛋鸡蛋太大怎么办 小班走丢了怎么办教案 小班走丢了怎么办反思 房屋外墙漏水物业不管怎么办 厨房墙砖用色花怎么办 小孩子做错事很偏激怎么办 孩子在学校偷钱怎么办 房间墙壁上到处有湿虫怎么办 买了西晒的房子怎么办 墙面瓷砖下水管漏水怎么办 西晒房间开空调没效果怎么办 墙纸被小孩画了怎么办 集成墙板缝隙大怎么办 高血压变低血压怎么办会恢复吗 总是感觉睡不够好困怎么办 两岁宝宝说有鬼怎么办 阳台改成了卧室晒衣服怎么办 室外墙角边墙泥受潮脱落怎么办 新房装修墙体发霉了怎么办 宝宝吃多了发烧怎么办 宝宝睡觉不爱盖被子怎么办