
在Java项目中,调用用C++程序写的接口时,出现了说找不到程序这样的一个问题,具体报错信息如下:
原因Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'CheckCmdLine': 找不到指定的程序。
at com.sun.jna.Function.
(Function.java:252)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:594)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:570)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:556)
at com.sun.jna.Library$Handler.invoke(Library.java:243)
at com.sun.proxy.$Proxy0.CheckCmdLine(Unknown Source)
at com.internet.challenge.jna.App.main(App.java:13)
通过查找封装好的C++程序发现,里面其实是有这个方法的, 查找资料发现,问题是出在命名规范这一块,C++里面方法的命名,要与Java这边的一致,都必须使用驼峰命名法,否则会出现找不到该程序这样一个问题。
下面是C++程序里面封装的方法:
解决办法将C++里面的方法名称改为驼峰命名法。改完之后iu,执行正常。