日期:2014-05-20  浏览次数:21100 次

JNA中Native.loadLibrary第一个参数问题
Native.loadLibrary(String, class)第一个参数用绝对路径没有问题,可要是相对路径怎么写呢?
我项目位置:D:\workspace\test
.java文件位置:D:\workspace\test\scr\com\sys\ang

CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%TOMCAT_HOME%\common\lib\servlet-api.jar;%JAVA_HOME%\jre\lib\rt.jar

Java code
API INSTANCE = (API)Native.loadLibrary("D:\\测试程序\\DLL\\API", API.class);

想把第一个参数从绝对路径改成直接写API,那这个API.DLL要放在什么位置呀?

------解决方案--------------------
放在工程的src下,发布后出现在WEB-INF\classes\下,然后在你要调用API INSTANCE = (API)Native.loadLibrary的类中(如类名为A),调用如下
String path=A.class.getResource("/").getPath()+"API.dll";
//如何tomcat路径中有空格,加上这句path=path.replaceAll("%20", " ");
API INSTANCE = (API)Native.loadLibrary(path, API.class);
祝你成功