Jacob环境探索(兼容性、管理员、DLL位置、VS环境,COM权限)

2024-06-12 04:44

本文主要是介绍Jacob环境探索(兼容性、管理员、DLL位置、VS环境,COM权限),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


概述:

        最近在生产开发实践出现了很多问题,经过了一系列排查,特做如下总结


探索成果:

1. jacob.dll的建议位置

  • 首先jacob的官网,以及官方GitHub,你可以从这里找到DLL文件,以及相关资料
  • 然后DLL文件建议放置的位置为:C:\Windows\System32;jdk\bin;jdk\jre\bin
  • 或者可以直接使用主动加载的方式:
package com.example.worddemo.test.jacob;import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.LibraryLoader;
import com.jacob.com.Variant;public class RangeText {public static void main(String[] args) {// 加载 JACOB 库System.setProperty(LibraryLoader.JACOB_DLL_PATH, "path/to/jacob-1.20-x64.dll");LibraryLoader.loadJacobLibrary();ActiveXComponent wordApp = null;try {// 创建 Word 应用程序对象wordApp = new ActiveXComponent("Word.Application");// 设置 Word 应用程序不可见wordApp.setProperty("Visible", new Variant(false));// 获取文档集合Dispatch documents = wordApp.getProperty("Documents").toDispatch();// 打开指定路径的文档String filePath = "C:\\path\\to\\your\\document.docx";Dispatch document = Dispatch.call(documents, "Open", filePath).toDispatch();// 关闭文档,不保存更改Dispatch.call(document, "Close", new Variant(false));} catch (Exception e) {e.printStackTrace();} finally {// 退出 Word 应用程序wordApp.invoke("Quit", new Variant[0]);}}
}

2. 以兼容模式运行/管理员身份运行

        个人经过实践,这两种设置方式是没有用的,并不能解决、改善现有的调用错误问题。

        当然网上有成功案例,但是我试了没用

3. COM组件DCOM的权限以及交互模式设置

        个人实践没有用,如果想试的话可以参照下面的例子

  • 例子1
  • 例子2
  • 例子3
  • 例子4
  • 例子5

4.安装VS的C++运行库

        个人经过实践,没有用,根据官网给出的运行条件

安装了2019后依旧没有改善 


解决办法:

在本项目中,遇到的问题,解决办法用到了以下两个文章提到的方案

  • 这个文章中的显式加载,以及for循环改为while循环
  • 这个文章中的触发事件

这篇关于Jacob环境探索(兼容性、管理员、DLL位置、VS环境,COM权限)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053227

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Linux权限管理与ACL访问控制详解

《Linux权限管理与ACL访问控制详解》Linux权限管理涵盖基本rwx权限(通过chmod设置)、特殊权限(SUID/SGID/StickyBit)及ACL精细授权,由umask决定默认权限,需合... 目录一、基本权限概述1. 基本权限与数字对应关系二、权限管理命令(chmod)1. 字符模式语法2.

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.