JAVA访问DLL出错,不知怎么解决. 出错信息:Native Library C:\Program Files\IBM\WebSphere MQ\Java\lib\mqjbnd05.dll already loaded in another classloader 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你把dll文件放到jdk安装目录下的jre下的bin文件夹里,然后再去访问,试试! 总不至于是你loadlibrary了两次吧,呵呵 关键信息是:“in another classloader”,不知道你是在什么地方使用那个类的。服务器下的几个不同的目录的 jar 文件使用的不同的 ClassLoader,详细是哪几个 ClassLoader 我也记得不是十分确切,但是我建议:1. 如果你知道的话,将使用那个 mqjbnd05.dll 的类放在同一个 jar 下,至少要放在同一个目录下。2. 不要把服务器自带的 jar 文件复制到你自己 webapp 的 lib 目录下。 Tomcat两个webapp都要访问这个dll,怎么解决? 一定是有多个地方放置了这个dll放在system32里面最稳妥当然如果是tomcat放在common/lib里面也是可以的 Java调用COM笔记 下载JCOM,解压取出jcom.jar和jcom.dll两个文件。1、 将附件的jcom.jar复制到本地,并设置环境变量引用之(最简单快捷的办法就是将该jar包解压到自己的代码目录中)。 2、 该dll copy到JDK目录的bin目录下。 3、 查找需要调用的COM主件名称。注意,COM组件名称并不是dll文件的名称,可以到注册表中查询。4、 查找调用的COM的接口方法: 可以在Microsoft Visual Studio .NET 2003 中引用相应的DLL,在“对象浏览器”中就可以看到该组件的所有接口方法: 5、 Java调用代码: import jp.ne.so_net.ga2.no_ji.jcom.*; public class ProcessXML { public static void main(String[] args) { Process(); } public static String Process(){ ReleaseManager rm = new ReleaseManager(); try { IDispatch vbcom = new IDispatch(rm, "U8Distribute.iDistribute"); Object[] param = new Object[] { "XXXXX" }; String strRet = (String)vbcom.method( "Process", param ); System.out.println("return: " + strRet); } catch ( Exception e ) { e.printStackTrace(); } finally { rm.release(); } return null; } } 写出下面的程序的执行结果,老规矩,不许上机..... 我想实现JAVA串口通信并把得到的数据画一个坐标显示出来连成折线或曲线 java 关键字this的用法 ,谁能帮我详细解释下.谢谢了 按钮前景色设置 为什么在JAVA里面,“自已”可以声明“自己”(即在类A中声明A类型的对象),这不会是一个死循环吗? 一个棘手的url问题 救急 刚入java,有道题,请问大侠 如果使用javamail是否可以实现email发送,做自己的mail.安全性好么? 有几个小地方不懂 细致的大虾来解答下 jTextField如何限制输入字符长度? 请教:如何用javadoc?
2. 不要把服务器自带的 jar 文件复制到你自己 webapp 的 lib 目录下。
放在system32里面最稳妥
当然如果是tomcat放在common/lib里面也是可以的
下载JCOM,解压取出jcom.jar和jcom.dll两个文件。
1、 将附件的jcom.jar复制到本地,并设置环境变量引用之(最简单快捷的办法就是将该jar包解压到自己的代码目录中)。 2、 该dll copy到JDK目录的bin目录下。 3、 查找需要调用的COM主件名称。注意,COM组件名称并不是dll文件的名称,可以到注册表中查询。
4、 查找调用的COM的接口方法: 可以在Microsoft Visual Studio .NET 2003 中引用相应的DLL,在“对象浏览器”中就可以看到该组件的所有接口方法:
5、 Java调用代码: import jp.ne.so_net.ga2.no_ji.jcom.*; public class ProcessXML { public static void main(String[] args) { Process(); } public static String Process(){ ReleaseManager rm = new ReleaseManager(); try { IDispatch vbcom = new IDispatch(rm, "U8Distribute.iDistribute"); Object[] param = new Object[] { "XXXXX" }; String strRet = (String)vbcom.method( "Process", param ); System.out.println("return: " + strRet); } catch ( Exception e ) { e.printStackTrace(); } finally { rm.release(); } return null; }
}