我在myEclipse工具中建了一个java类,里面写的是jnative 调用dll文件,但不知道怎么老是错误!
//源代码
public static void main(String[] args) {
Demo d=new Demo();
try {
System.out.println(d.getInfo());
} catch (NativeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}系统报异常:
E:/Link/WebRoot/WEB-INF/classes/%5c
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: E:/Link/WebRoot/WEB-INF/classes/%5czkemkeeper.dll
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1677)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1005)
at AppSvrTestConnect.TestConnectFromDllPath(AppSvrTestConnect.java:58)
at Demo.getInfo(Demo.java:16)
at Demo.main(Demo.java:33)看异常怎么路径path后面的总是多一个‘%5c’???
//源代码
public static void main(String[] args) {
Demo d=new Demo();
try {
System.out.println(d.getInfo());
} catch (NativeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}系统报异常:
E:/Link/WebRoot/WEB-INF/classes/%5c
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: E:/Link/WebRoot/WEB-INF/classes/%5czkemkeeper.dll
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1677)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1005)
at AppSvrTestConnect.TestConnectFromDllPath(AppSvrTestConnect.java:58)
at Demo.getInfo(Demo.java:16)
at Demo.main(Demo.java:33)看异常怎么路径path后面的总是多一个‘%5c’???
public class Demo {
public int getInfo() throws NativeException, IllegalAccessException{
String path=getClass().getResource(File.separator).getPath();
path = path.substring(1,path.length());
System.out.println(path); //得到DLL文件的路径
String ip = "192.168.1.89"; //服务器IP
int port = 8088; //端口
int intrcpt = 1; //数据压缩方式传送,1为采用;0为不采用
//方法1 传入Dll文件的路径
int info = AppSvrTestConnect.TestConnectFromDllPath(path, ip, port, intrcpt);
//方法2 Dll文件已经放在JRE\bin目录下面
// int info = AppSvrTestConnect.TestConnectFromDllPath(ip, port, intrcpt);
//1为成功,0为失败
if (info == 1)
System.out.println("应用服务器可用。");
else
System.out.println("应用服务器不可用,请检查IP地址和端口是否正确。");
return info;
}
public static void main(String[] args) {
Demo d=new Demo();
try {
System.out.println(d.getInfo());
} catch (NativeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}