项目中需要对接其他系统,需要通过一个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,然后竟然可以了!目前还不知道为什么,先做个纪录,有知道的小伙伴可以帮忙解答一下,谢谢!