我在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’???

解决方案 »

  1.   

    这是整个Demo类
    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();
    }
    }
    }