java通过jni调用dll文件报错java.lang.UnsatisfiedLinkError

项目中需要对接其他系统,需要通过一个jar包调用对方系统接口,但是这个jar包通过jni调用了.dll文件,一开始在ide中运行提示在“C:\Program Files\Java\jdk1.8.0_271\jre”目录下无法找到.dll文件,好吧,那就把对方提供的.dll文件复制到“C:\Program Files\Java\jdk1.8.0_271\jre”目录下,复制完成后可以正常启动了。

但是后来将项目把成jar包,以java -jar xxx.jar启动时却报如下错误。

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.tpri.sis.webcore.connector.tpri.jni.DBPAPI.DBPCreate([Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[II)J
        at com.tpri.sis.webcore.connector.tpri.jni.DBPAPI.DBPCreate(Native Method)
        at com.tpri.sis.webcore.connector.tpri.TPRIConnection.connect(TPRIConnection.java:87)
        at com.tpri.sis.webcore.connector.RealDBConnectionPool.createConnection(RealDBConnectionPool.java:89)
        at com.tpri.sis.webcore.connector.RealDBConnectionPool.initPool(RealDBConnectionPool.java:66)
        at com.tpri.sis.webcore.connector.RealDBConnectionManager.register(RealDBConnectionManager.java:73)
        at ReadRealData.main(ReadRealData.java:36)

ide中可以正常启动,为什么用java -jar xxx.jar不行?

查看了一下idea中的启动命令是如下一大长串,难道是启动命令不同导致的?于是把启动命令修改为 "C:\Program Files\Java\jdk1.8.0_271\bin\java.exe" -jar xxx.jar,仅仅是把java改为了C:\Program Files\Java\jdk1.8.0_271\bin\java.exe,然后竟然可以了!目前还不知道为什么,先做个纪录,有知道的小伙伴可以帮忙解答一下,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值