Java调用com组件之jacob

news2024/11/17 22:35:09

一、背景介绍

现有标准的 win32 com组件,有如下的参数:

属性 值 说明
Program IDyinhai.yh_hb_sctr
COM ClassID
COM ClassName
COClass_yh_hb_sctr

Interface TypeDual Interface
Interface NameIyh_hb_sctr
具有一个方法:
yh_hb_call( string astr_jyhb, string astr_jysr, ref string astr_jysc)
需要使用Java进行调用。

二、采用jacob进行调用

2.1 添加依赖

<dependency>
  <groupId>com.hynnet</groupId>
  <artifactId>jacob</artifactId>
  <version>1.18</version>
</dependency>

 2.2 将dll文件放置在java_home\bin目录中

package com.msip;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;


public class TestCom {
    public static void main(String[] args) {
        ComThread.InitSTA(false);
        ActiveXComponent component = new ActiveXComponent("yinhai.yh_hb_sctr");

        try {
            // 获取 COM 组件的 Dispatch 对象
            Dispatch dispatch = (Dispatch) component.getObject();
            String rest = null ;
            String input = "{}";
            // 直接调用方法
            Variant result = Dispatch.invoke(dispatch, "yh_hb_call", Dispatch.Method,
                    new Object[]{"1101", input,rest}, new int[1]);
            // 获取方法调用的结果
            System.out.println("Result: " + result.toString());
            System.out.println("rest="+rest);
        } finally {
            // 关闭 COM 组件,释放资源
            component.safeRelease();
        }

    }
}

三、遇到的问题

3.1 jdk版本问题,文中的com组件是32位系统的,所以程序的jdk必须也是32位的。

3.2 配套的dll程序必须在类路径中

3.3 代码中的try finally语法块是必须的,否则,机会提示找不到对应的方法名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1226593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三、LED闪烁

通过LED的闪烁实验&#xff0c;详解Keil MDK中创建mm32单片机的工程的步骤。 1、开发环境 (1)Keil MDK: V5.38.0.0 (2)MCU: mm320163D7P。 2、Keil工程的创建 (1)打开Keil MDK。 (2)点击“Project”→“New μVision Project...”。 (3)选择工程保存地址及工程文件名&…

基于Springboot的地方美食分享网站(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的地方美食分享网站(有报告)。Javaee项目&#xff0c;springboot项目。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 项目介绍&#xff1a; 采用…

数据挖掘复盘——apriori

read_csv函数返回的数据类型是Dataframe类型 对于Dataframe类型使用条件表达式 dfdf.loc[df.loc[:,0]2]df: 这是一个DataFrame对象的变量名&#xff0c;表示一个二维的表格型数据结构&#xff0c;类似于电子表格或SQL表。 df.loc[:, 0]: 这是使用DataFrame的.loc属性来进行…

devops底层是怎么实现的

DevOps的3大核心基础架构 简而言之&#xff0c;实现DevOps工具链&#xff0c;基本需要3个核心基础架构&#xff1a; SCM配置管理系统 Automation自动化系统 Cloud云&#xff08;或者说可伸缩的、自服务的、虚拟化系统&#xff09; SCM配置管理系统 SCM中所放置的内容又可以再…

系列十、你说你做过JVM调优和参数配置,请问如何盘点JVM系统的默认值?

一、JVM的参数类型 1.1、标配参数 java -versionjava -help 1.2、XX参数 1.2.1、Boolean类型 公式&#xff1a;-XX:或者- 某个属性值 表示开启、-表示关闭 # 是否打印GC收集细节 -XX:PrintGCDetails -XX:-PrintGCDetails# 是否使用串行垃圾收集器 -XX:UseSerialGC -XX:-UseS…

矩阵的QR分解

矩阵的QR分解 GramSchmidt 设存在 B { x 1 , x 2 , … , x n } \mathcal{B}\left\{\mathbf{x}_{1},\mathbf{x}_{2},\ldots,\mathbf{x}_{n}\right\} B{x1​,x2​,…,xn​}在施密特正交化过程中 q 1 x 1 ∣ ∣ x 1 ∣ ∣ q_1\frac{x_1}{||x_1||} q1​∣∣x1​∣∣x1​​ q k …

网页视频下载工具 iTubeGo mac中文版软件特色

iTubeGo YouTube Downloader mac是一款功能强大的YouTube视频下载工具。 iTubeGo YouTube Downloader mac软件特色 多种格式支持&#xff1a;iTubeGo YouTube Downloader可以将YouTube视频下载为多种常见的视频和音频格式&#xff0c;包括MP4、MP3、AVI、FLV、MOV、WMV等&…

JavaspringbootMYSQL基于移动端的团购网站26449-计算机毕业设计项目选题推荐(附源码)

目 录 摘要 1 绪论 1.1 选题背景 1.2选题目的及意义 1.3springboot框架介绍 2 基于移动端的团购网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章…

数学建模值TOPSIS法及代码

TOPSIS法 TOPSIS法简称为优劣距离解法&#xff0c;是一种常见法综合评价方法&#xff0c;其能充分利用原始数据的信息&#xff0c;其结果能精确地反映各个评价方案之间的差距。 模型介绍 上篇文章谈到的层次分析法是有局限性的。比如评价的决策层不能太多&#xff0c;太多的…

Actor对象的引用 怎么设置他的材质?或设置是否启用重力?

这个蓝图我是想当重叠触发,将另一个Target Actor(一个球体)设置他的z增加50,但是为什么在触发的时候会抽搐?而且我想要设置他的材质等等这些属性都不行

C# 电脑程序控制电路开关

最近在做系统的监控&#xff0c;想到能不能做一个酷点的功能&#xff0c;当收到异常消息时桌面上的红色小灯&#xff08;或报警灯&#xff09;会亮起来。于是在淘宝上找了一下&#xff0c;有这种小设备&#xff0c;插入USB设备&#xff0c;通过串口控制这个设备的继电器来实现&…

基于适应度相关算法优化概率神经网络PNN的分类预测 - 附代码

基于适应度相关算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于适应度相关算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于适应度相关优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针…

算法设计与分析复习--求解最大子段和问题(分支法、动态规划)

文章目录 问题描述分治法动态规划法 问题描述 最大子段和问题&#xff1b; 洛谷P1115.最大子段和 分治法 利用归并排序的方法&#xff0c;但是由于是算最大子段和所以&#xff0c;并不能将它变成有序的&#xff0c;左边和右边的最大子段和通过调用函数&#xff0c;而中间的要…

apply和call在Javascript中的使用与区别

apply和call在js中的使用与区别&#xff1a; 字符串格式化&#xff1a; ${占位符} name小帅 console.log(我是${name}) //我是小帅apply: 语法&#xff1a;function.apply(thisArg, [argsArray])thisArg&#xff1a;可选参数&#xff0c;指定函数执行时的上下文&#xff08…

3.5-构建自己的Docker镜像

首先介绍两个命令&#xff1a; 1.docker container commit&#xff0c;可以简写为&#xff1a;docker commit。这个命令是把一个修改后的container重新变成一个image。 2.docker image build&#xff0c;可以简写为&#xff1a;docker build 首先&#xff0c;演示一下docker c…

mysql优化之explain 以及 索引优化

Mysql安装文档参考&#xff1a;https://blog.csdn.net/yougoule/article/details/56680952 Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句&#xff0c;分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字&#xff0c;MySQL 会在查询上设…

MattML

方法 作者未提供代码

让你彻底学会HBase

让你彻底学会HBase Apache HBase&#xff08;Hadoop DataBase&#xff09;是一个开源的、高可靠性、高性能、面向列&#xff08;这里指列族&#xff0c;非列式存储&#xff09;、可伸缩、实时读写的分布式数据库。利用 Hadoop HDFS 作为其文件存储系统&#xff0c;利用 ZooKee…

图片降噪软件 Topaz DeNoise AI mac中文版功能

Topaz DeNoise AI for Mac是一款专业的Mac图片降噪软件。如果你有噪点的相片&#xff0c;可以通过AI智能的方式来处理掉噪点&#xff0c;让照片的噪点降到最 低。有了Topaz DeNoise AI mac版处理图片更方便&#xff0c;更简单。 Topaz DeNoise AI mac软件功能 无任何预约即可在…

如何将 Docsify 项目部署到 CentOS 系统的 Nginx 中

文章目录 第一步&#xff1a;准备 CentOS 服务器第二步&#xff1a;安装 Node.js 和 Docsify第三步&#xff1a;初始化 Docsify 项目第四步&#xff1a;本地预览 Docsify 项目第五步&#xff1a;配置 Nginx 服务器第六步&#xff1a;重启 Nginx 服务器拓展&#xff1a;使用 HTT…