-
2021-03-31 10:23:33
本人java爱好者,最近想要通过java调用大漠插件,实现一些脚本。但是发现java调用大漠插件的文章在网上太少啦,自己经过长达一周的实践和测试,总算是可以通过java调用大漠插件了,也算是给小伙们避个坑,坑太多了, 下面不多说直接上教程。(本人vx:li-peng-duan)
java调用大漠需要的必备项:
1.java环境 (十分建议jdk32位)切记,因为经过我实际测试64位真的不行,即便大漠7.2版本甚至更早版本早就说支持64位,但实际测试还是不行。
2.java调用大漠其中有很多方式,包含jacob和jawin等多种中间桥梁方式,我本人精力有限,是调通了jacob包的方式。如下会上代码。
3.既然选择jacob包,那么我们需要jacob下载,下载之后包含:jacob.jar ,jacob-1.18-x64.dll,jacob-1.18-x64.dll 三个。
4.我们需要将,jacob-1.18-x64.dll 放入jdk路径下的jre/bin 目录下,也就是要放在jre下,那我们在运行项目时,会自动调用,其中jacob-1.18-x64.dll 是64位jdk ,jacob-1.18-x86.dll是84位jdk。这里要求和建议选择84 的,也就是对应的32jdk。因为经过测试64位有bug。重要!重要!重要!重要!重要!
5.第五步,我们需要下载大漠7.2 我现在是7.2,当然可能大家看到的时候时间又过去了许多,大家根据当时版本使用即可。大漠下载后,我们需要将dm.dll和 reddll.dll 文件放在我们电脑C:\Windows\SysWOW64 目录下,放下后,在cmd命令下,输入
regsvr32 dm.dll 注册, 能正确显示注册成功,即注册大漠成功。
6.我们需要将jacob中的jar包放入到我们的idea工程中吗,放在lib目录下面
7.建立一个测试类,然后在主函数中输入下代码,代码意思就是实例化一个大漠类,输入版本号,能打印版本号即证明调用大漠彻底成功了,如下贴图:
ActiveXComponent dm =new ActiveXComponent(“dm.dmsoft”);System.out.println(dm.invoke("Ver").getString());
在main函数中输入以下代码 如果能打印出 版本号 证明大漠插件加载了
如下是相关成功截图: 如果还有不懂得可以联系我微信。
关于jacob包和jdk包为了大家下载方便,我这边提供直接下载完整的压缩包,大家下载了直接拿去用即可,在我这里一键搞定java调用大漠!!!!如下是jacob和jdk安装包:
好吧我也csdn新手,不知道为什么选择导入提示不行,大家有需要可以联系我vx li-peng-duan 。就这样
作者:夜愿
更多相关内容 -
java调用大漠插件源码,绑定游戏柄口,进行后台操作
2019-06-28 11:42:50直接可以运行的java调用大漠插件源码,绑定游戏柄口,进行后台操作,隐藏或最小化窗口都可以后台操作,不妨碍其他操作,独立运行。 -
Java报表插件FineReport详细教程
2018-09-12 16:35:35Java报表插件FineReport详细教程,目前插件开发调试非常麻烦,需要修改代码,编译出 class,重新打插件包。然后删除以前的,安装最新的。过程繁杂,而且不能调试,十分不方便。那么我就来教会大家如何可以调试插件。 -
java调用插件代码.rar
2010-10-25 17:59:10java调用插件代码.rarjava调用插件代码.rar -
java分页插件,简单实用
2018-03-21 16:58:11分页插件,还算不错,可以试试,可以学习下,还可以自己添加一些自己的需求,直接解压直接使用快速上手。还是很可以的。 -
java 调用大漠插件2
2019-06-26 14:48:38之前发了一篇jacob调用大漠的博文,总觉好麻烦,并且后来...不过现在找到一个比较高效并且可以直接使用java对象进行编码的插件 第一版 叫jawin新版 叫 njawin 具体项目我已经写好放到git上了下载下来之后 将jaw...之前发了一篇jacob调用大漠的博文,总觉好麻烦,并且后来经过测试发现存在性能问题。
本来想弄免注册的 翻遍了国内外所有的网站以及博客就是找不到一篇与之有关的文章讲这个。所以自己去研究了com的架构原理。可能还要一段时间。
不过现在找到一个比较高效并且可以直接使用java对象进行编码的插件
第一版 叫jawin 新版 叫 njawin
具体项目我已经写好放到git上了下载下来之后 将jawin.jar 添加到lib中就行了,如果注册大漠可以用tools 的接口查看工具进行注册,没有那么多幺蛾子。项目地址:https://github.com/2229499815/jdm qq群哦:522163363
这样你就可以像这样调用大漠了。
public static void main(String[] args) throws COMException { JdmUtil.setLibPath(); //这里指定libirary.path,如果你的路径与我不一样需要修改这个方法 Idmsoft dm=new Idmsoft("dm.dmsoft"); String ver = dm.Ver(); System.out.println(ver); }
这样的编码提示是不是很爽?
-
很好用的java操作Excel组件
2018-12-20 14:40:10Apache开发的java操作Microsoft office的专用组件,尤其是对Excel文件操作太方便了。 -
java连接mysql数据库插件
2018-10-19 22:23:08mysql软件的中文版,用于建表建数据库等,可编写sql语句 -
java开发插件
2021-03-26 18:48:44插件使用idea开发,插件项目选择java项目,导出为jar包作为插件使用。使用处采用URLClassLoader加载器加载,反射调用。 一个简单的插件 调用处 @Test public void test13() throws Exception { File file = new ...最近想要用java开发一个插件。
参考
IntellijIdea 非Maven项目打Jar包(散包,依赖在外面)
IDEA导入jar包前提
插件使用idea开发,插件项目选择java项目,导出为jar包作为插件使用。使用处采用URLClassLoader加载器加载,反射调用。
操作指南
- 导入依赖的过程如下:
- 导jar设置过程如下:
- 导出操作
一个简单的插件
- 调用处
@Test public void test13() throws Exception { File file = new File("E:\\javaWorkSpace\\simple-plugin\\out\\artifacts\\simple_plugin_jar\\simple-plugin.jar"); URL url = file.toURI().toURL(); URLClassLoader classLoader = new URLClassLoader(new URL[] {url}); Class<?> gClass = classLoader.loadClass("com.simple.plugin.SimplePlugin"); gClass.getMethod("service").invoke(gClass.newInstance()); }
- 插件
package com.simple.plugin; /** * @description: * @author: zhangmy * @Version: 1.0 * @create: 2021-03-26 17:26 **/ public class SimplePlugin { public SimplePlugin() { System.out.println("SimplePlugin构造函数执行完毕!"); } public void service() { System.out.println("SimplePlugin插件提供服务!"); } }
- 结果
开发插件时调用第三方jar
什么是第三方jar?除了jdk以外的依赖。如果不是第三方jar,可以直接import使用,比如
import java.io.File
等java官方提供的。第三方jar
package com.hwp.plugin; /** * @description: * @author: zhangmy * @Version: 1.0 * @create: 2021-03-26 16:47 **/ public class HwpPlugin { public HwpPlugin() { System.out.println("HwpPlugin构造函数执行完毕!"); } public void service() { System.out.println("HwpPlugin提供了服务service!"); } }
插件中采用ClassLoader加载第三方jar
-
依赖:
可以看到,没有要使用的HwpPlugin
-
插件代码:
package com.zmy.plugin; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; /** * @description: * @author: zhangmy * @Version: 1.0 * @create: 2021-03-26 16:52 **/ public class ZmyPlugin { public ZmyPlugin() { System.out.println("ZmyPlugin构造函数执行完毕!"); } private static Class hwpPlugin = null; static { //加载第三方jar,绝对路径,需要保证第三方jar的位置 File file = new File("E:\\javaWorkSpace\\hwp-plugin\\out\\artifacts\\hwp_plugin_jar\\hwp-plugin.jar"); try { URLClassLoader loader = new URLClassLoader(new URL[] {file.toURI().toURL()}); hwpPlugin = loader.loadClass("com.hwp.plugin.HwpPlugin"); System.out.println("static代码块中加载HwpPlugin.class完毕!"); } catch (MalformedURLException | ClassNotFoundException e) { e.printStackTrace(); } } public void service () throws Exception { System.out.println("zmy-plugin先调用hwp-plugin的功能!"); hwpPlugin.getMethod("service").invoke(hwpPlugin.newInstance()); System.out.println("zmy-plugin调用hwp-plugin的功能完毕了!"); System.out.println("ZmyPlugin提供了自己的功能!"); } }
-
打包的插件jar结构
-
结果:
- 问题:
1、如果需要使用很多三方工具,需要加载很多类,每个类都要使用反射来调用,很麻烦。
2、使用的第三方jar的位置被限制了。插件中采用添加依赖+import的方式使用第三方jar
-
依赖:
HwpPlugin
被导入
-
插件代码:
package com.dpw.plugin; import com.hwp.plugin.HwpPlugin; /** * @description: * @author: zhangmy * @Version: 1.0 * @create: 2021-03-26 17:07 **/ public class DpwPlugin { public DpwPlugin() { System.out.println("DpwPlugin构造函数执行完毕!"); } public void service() { System.out.println("DpwPlugin调用HwpPlugin提供的功能!"); HwpPlugin hwpPlugin = new HwpPlugin(); hwpPlugin.service(); System.out.println("HwpPlugin提供功能完毕!"); System.out.println("DpwPlugin提供了自己的功能!"); } }
- 打包的插件jar结构
- 结果:
- 思考:
import是从当前jar的根开始,按照路径去寻找指定的类型的.class文件
- 好处:
不需要反射调用,开发简单
- 问题:
打出的jar包包含所有依赖,会比较大。
注意:
导出jar的设置需要选择
extract to the target jar
选项,不推荐另外一个。选择另外一个包结构会有所有变化,不好管理。
探索了三天,特此记录。
可以使用maven管理依赖,打包方式采用上面所述,更佳。
-
java调用大漠插件
2018-05-31 16:03:46这其实是一个java调用dll的问题,于是去查了下java如何调用dll,最先查到的是通过jni,发现非常麻烦,接着又发现一个jar包jna,实验了下发现不行,dm.dll属于com类型的插件,又查到一个jacob包专门调用com。...发现很多人在问java怎么调用大漠插件,自己研究了下,写篇博文分享下,大牛请忽略。
这其实是一个java调用dll的问题,于是去查了下java如何调用dll,最先查到的是通过jni,发现非常麻烦,接着又发现一个jar包jna,实验了下发现不行,dm.dll属于com类型的插件,又查到一个jacob包专门调用com。但是有点不完美的是目前不知道如何免注册调用。欢迎加群探讨更多java相关的技术qq群:522163363
一、环境
dm.dll版本3.1233
系统环境win10
jdk1.8 (win32)
jacob-1.17(包含 jacob.jar、jacob-1.17-x64.dll、jacob-1.17-x86.dll) 下载地址 https://sourceforge.net/projects/jacob-project/files/jacob-project/
开发工具idea
二、版本说明
dm.dll是win32编译的所以这边jdk要用x86的,jacob也要用x86。
首先将下载好的jacob中的jacob-1.17-x86.dll 拷贝到jdk目录 C:\Program Files (x86)\Java\jdk1.8.0_171\jre\bin
接着工程目录引入jacob .jar包这个一定要跟dll配套
接着 将dm.dll注册到系统,环境问题是个坑,因为系统问题,得先把dm.dll拷贝到C:\Windows\SysWOW64目录下,然后右键用管理员模式运行cmd.exe 进入目录C:\Windows\SysWOW64 注册dm.dll ,命令regsvr32 dm.dll 这样才能注册成功。
然后新建个类 DmTest.java
import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; /** * Created by admin on 2018/5/31. */ public class DmTest { public static void main(String[] args) { ActiveXComponent dm = new ActiveXComponent("dm.dmsoft"); System.out.println(dm.invoke("Ver").getString()); Dispatch com = (Dispatch) dm.getObject(); Variant result = Dispatch.call(com, "FindWindow" , "" , "记事本"); System.out.println(result); } }
打开一个记事本,右键运行DmTest就可以看到控制台打印输出版本号和记事本句柄
-
java使用POI插件绘制表格曲线图
2018-09-30 16:08:55此demo不需要借助其他插件,只需要加入poi相关的jar即可生成excel表格数据曲线,附件是源码 -
Java调用浏览器打开网页完整实例
2020-09-03 16:33:17主要介绍了Java调用浏览器打开网页的方法,以完整实例形式分析了java打开网页的相关技巧,需要的朋友可以参考下 -
java flash上传插件,动态调用.net的webapi
2015-03-26 18:00:50java flash上传插件,动态调用.net的webapi,批量上传 -
java调用linux命令、脚本工具类.zip
2020-08-27 15:59:22Java程序调用linux命令、脚本,支持程序在服务器上使用linux命令。工具类为:ProcessUtil,支持单个命令和批量命令执行函数,同时在工具类中添加了getFileLineNumByCmd函数支持通过linux命令获取文件行数的样例。 -
Java 常用插件
2021-03-22 14:38:062.文本编辑器CkEditor + CkFinder文本编辑器CkEditor本身不支持文件上传,要配合CkFinder插件使用。ckeditor_3.6.2(解压)ckeditor-java-3.6.2(解压)ckfinder_java_2.3.1(解压)2)解压ckfinder_java_2.3.1,导入相应的... -
Logstash自定义输入插件调用java类
2021-02-26 13:05:05Logstash自定义输入插件调用java类要求:输入插件:从队列中读取自定义插件:对于队列中的每个消息调用java类**Code:**# encoding: utf-8require "logstash/filters/base"require "logstash/namespace"require "java... -
【Java】java插件化开发
2022-02-07 17:18:04最近使用JavaFx开发小工具,工具包含多个功能,当把小工具给同事用时,发现有些功能仅针对我个人使用,其他人不一定用的上,于是打算将这些工具插件化。 -
java插件下载如何将JAVA插件支持Chrome
2021-03-22 09:17:59java插件下载如何将JAVA插件支持ChromeChrome支持JAVA插件的步骤:1、首先,在Chrome地址栏输入chrome://flags/#enable-npapi .注意:输出的要完全正确,如果多了一个字,都不会正常显示2、然后单击 Enable(启用)3、... -
java实现拓扑图插件 - 1(已亲测)
2019-06-13 09:40:39上传了两个 java 实现拓扑图的插件,这是其一,亲们可以两个都下载试试,哪个合适使用哪个。 -
Unity直接使用.java文件 测试
2019-12-12 14:26:24从Unity2018.2版本以后,Unity已经可以直接编译 .cpp、.a、.java 文件作为 插件 在Unity程序中使用了,可以节省下使用VS、AS、XCode进行插件开发的导出调试的步骤,十分方便。我们以.java为例 ... -
使用 Java 编写 Apache APISIX 插件
2021-06-24 11:36:05在支持多语言编程插件前,Apache APISIX 只支持使用 Lua 语言编写插件,需要开发者掌握 Lua 和 OpenResty 相关的开发能力。然而相对于主流开发语言 Java、Go 来说,Lua 和 OpenResty 属于相对小众的技术,开发者很少... -
JAVA版谷歌翻译-调用web版谷歌翻译
2019-03-26 13:27:27JAVA调用谷歌翻译接口,JAVA版根据tkk计算tk算法,不调用js算法.直接调用谷歌web翻译,http post调用 -
java实现拓扑图插件 - 2(已亲测)
2019-06-13 10:00:13上传了两个 java 实现拓扑图的插件,这是其一,亲们可以两个都下载试试,哪个合适使用哪个。 -
java免注册调用大漠插件
2020-08-19 12:37:201 需要用到的文件 ... JavaScript_build.jar:封装的sdk,基本上满足使用。 dm.rar:里面包含3.1...jawin:国外开源的插件,操作dll的 jdk:32位 1.8,不能用64位。 apidocs:里面有一些说明,不过大部分情况下应该用不 -
Firefox 中使用 Java 插件
2021-03-08 20:41:26本文转自Firefox官方网站许多网页使用 Java 小程序 用于交互式内容,如在线游戏。Java 是一种编程语言,它可以运行在 Windows、Mac、Linux 及其他计算机系统。在 Firefox 运行 Java 小程序之前,您必须已经正确安装... -
BeyondCompare支持java8的class反编译插件
2021-08-04 18:11:27因本人使用的JDK1.8,测试可用,高版本JDK暂未测试。 使用步骤:beyond compare的菜单--工具(tools)--- 导入设置(import ...将jar包或class文件拖放对比的时候,在对比窗口上选择编译方式为Java Class to source。 -
burp插件开发基础二(JAVA篇).pdf
2021-04-05 21:05:33该篇文章主要介绍burp插件开发中常使用的IHttpListener接口。其中包含三部分接口实例:分别是修改请求数据的host重定向请求到其他主机、添加x-forwarded-for请求头、修改响应数据包体(body)。在开始实例介绍之前,... -
java调用百度定位api服务获取地理位置示例
2020-09-04 19:07:53java调用百度定位api服务获取地理位置示例,大家参考使用吧 -
java 使用qt 开发gui 界面的qtjambi 开发包(完整版)
2020-03-16 18:59:14在使用java 进行qt 界面开发的时候,必不可少的qt jambi 开发包。 下载压缩包后 将其中的 jar导入项目的build path。 然后,在安装了qtjambi 插件的eclipse 中的 Qt Jambi Preference Page 的 Jambi Location 处... -
《阿里巴巴Java开发规约》插件使用详细指南
2017-10-19 09:46:00阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件。为大家详细介绍一下IDEA插件与Eclipse插件的安装使用。