`
deng2121081
  • 浏览: 1345 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Tomcat作为服务运行时,JACOB调用Excel失败解决方案

阅读更多

来源 http://wowtianwen.iteye.com/blog/1952913

 

问题表现:

1,当将Tomcat以命令行的方式运行时,JACOB可以正常调用Excel。

2,当将Tomcat以Windows服务的方式启动时,会导致调用不成功,表现就是程序卡在调用那一步。

3,如果仔细查看Tomcat日志会发现以下错误:

com.jacob.com.ComFailException: Invoke of: OpenSource: Microsoft Office Excel Description: Microsoft Office Excel

• 文件名称或路径不存在。
• 文件正被其他程序使用。
• 您正要保存的工作簿与当前打开的工作簿同名。

 

如果你遇到了以上问题,恭喜你又被微软的垃^圾软件给坑了。

解决方案:

 

1,如果是windows 2008 操作系统

请参考这2篇文章:

http://stackoverflow.com/questions/16731037/excel-cant-read-file-written-by-java-process-when-running-as-windows-service

http://bytes.com/topic/c-sharp/answers/819740-c-service-excel-application-workbooks-open-fails-when-called-service#post3514712

如果打不开,请自行翻^^墙.或直接看下边介绍:

如果你是64位操作系统

请在C:\Windows\SysWOW64\config\systemprofile\目录下新建一个Desktop的文件夹

如果是32位操作系统

请在C:\Windows\System32\config\systemprofile\目录下新建一个Desktop的文件夹

2,如果你经过以上步骤还是不行,握个手吧,我试了之后也还是不行,请继续往下看

3,请参考这2篇文章:

http://stackoverflow.com/questions/3658936/office-2007-is-unable-to-open-files-when-called-through-jacob-from-a-service

http://bytes.com/topic/c-sharp/answers/819740-c-service-excel-application-workbooks-open-fails-when-called-service#post3466746

如果打不开,请自行翻^^墙.或直接看下边介绍:

4,首先打开任务管理器,结束Excel.exe*32的进程,

5,停止你的tomcat服务,

6,运行"dcomcnfg"

7,在新打开的窗口里,依次展开:“控制台根节点”-->“组件服务”-->"计算机"-->“我的电脑”-->"DCOM配置",

8,在里面找到一个名为"Microsoft Excel Application"的节点

9,右键单击该节点,选属性 ,切换到标识选项卡

改为“交互式用户”,最后点击确定完成

 

如果在第8步里,你没有找到"Microsoft Excel Application"的节点,恭喜你,又被微软这个垃圾公司给坑了,据说是微软忘了在windows2008 64位的dcom配置里加入32位程序,诅****咒微软1000000遍。

请参考:

http://blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2012/11/12/microsoft-excel-does-not-appear-in-dcom-configuration-snap-in.aspx

http://social.msdn.microsoft.com/Forums/office/en-US/cba17567-6371-4a66-a33a-5b36093864d2/dcom-component-services-missing-help?forum=worddev

 

不想看的直接看下面介绍:

10,关闭刚才打开的dcom配置的窗口

11,在命令行模式下,切换到

C:\WINDOWS\SysWOW64这个目录

11,输入 mmc comexp.msc /32 这个命令

12,此时会再次弹出刚才的那个dcom窗口,重复7~9的步骤

 

最后再次以服务的方式启动Tomcat,运行你的程序再行测试,应该就可以了。

至此我的是可以了。

什么?你的还是不行?哎,找个墙角,画圈圈诅*****咒微软早点破产吧

 

 

分享到:
评论

相关推荐

    jacob-excel转pdf.zip

    "jacob-excel转pdf.zip"这个压缩包文件显然提供了一个解决方案,使用JACOB库来完成这个转换。JACOB(Java Advanced COM Bridge)是一个Java到COM桥接库,允许Java程序调用COM组件,如Microsoft Office应用程序,来...

    使用JACOB工具调用COM组件

    JACOB,全称为JAVA-COM Bridge,它允许Java应用程序直接调用COM(Component Object Model)组件,这些组件通常是用Visual Basic、VC++等语言编写的,并且在Windows操作系统环境下运行。JACOB利用Java本地接口(JNI)...

    jacob调用自定义宏

    jacob调用自定义宏实现Java对Word的完美操作 jacob是一个Java-COM桥接器,允许Java程序与COM组件进行交互。在这个示例中,我们使用jacob来调用Word的自定义宏,实现Java对Word的完美操作。 标题: jacob调用自定义...

    Jacob Word excel 转PDF 合并PDF文件

    标题提到的"Jacob Word excel 转PDF 合并PDF文件"是指使用Jacob库来将Microsoft Word和Excel文档转换为PDF格式,并进一步合并多个PDF文件。Jacob(Java Advanced COM Bridge)是一个Java库,它允许Java应用程序与...

    jacob/js调用ocx控件的demo

    本示例"jacob-js调用ocx"提供了一个详细的教程,演示了如何使用Jacob库在Java中调用OCX控件,并通过JavaScript在网页中与之通信。 首先,Jacob库是一个Java到COM(Component Object Model)桥接器,它允许Java应用...

    JAVA + JACOB调用c++COM组件

    本篇文章将详细探讨如何使用Java通过JACOB库来调用C++编写的COM(Component Object Model)组件,特别是涉及VARIANT*和BSTR*这两种数据类型的参数传递。 首先,让我们了解什么是COM组件。COM是一种微软开发的技术,...

    关于jacob的使用解决方案1

    标题中的“关于jacob的使用解决方案1”指出的是在Java环境中使用Jacob库遇到的问题及其解决方法。Jacob是一个Java到COM桥接库,允许Java应用程序访问和操作COM组件,如Microsoft Office套件,以便进行文件格式转换等...

    jacob-java调用word

    JACOB(Java COM Bridge)是一个用Java编写的COM自动化的桥接库,允许Java程序调用和控制微软COM组件,如Word、Excel和Outlook等。通过JACOB,Java开发人员可以创建和操作Word文档,执行宏命令,甚至将Word文档转换...

    java jacob调用autocad读取文件

    Java Jacob调用AutoCAD读取文件是一种常见的技术实践,它允许开发者通过Java程序与AutoCAD进行交互,实现对DWG或DXF等AutoCAD文件的读取操作。Jacob(Java和COM的桥梁)是一个Java库,它使得Java应用程序能够直接...

    java打印Excel(与打印机通信、jacob)

    总之,Java通过Jacob库与打印机通信打印Excel文档是一种实用的技术,它结合了Java的跨平台能力和Windows系统的丰富功能,为开发人员提供了一种灵活且强大的解决方案。在实际项目中,根据需求可以进一步优化和调整...

    Jacob操作Excel

    ### Jacob操作Excel知识点详解 #### 一、Jacob简介与应用场景 **Jacob** 是一个Java库,用于调用COM组件,从而让Java程序...对于需要频繁处理Excel文档的Java应用程序来说,Jacob提供了一个高效、可靠的解决方案。

    C++ COM 组件 java + jacob 调用,jacob调用详情请看jacob栏

    COM组件通常用C++编写,可以被其他支持COM的应用程序(如VBScript、JavaScript或Java)调用。...在其他操作系统上,可能需要寻找其他的解决方案,如使用JNA(Java Native Access)或其他跨平台的COM桥接库。

    jacob操作excel

    jacob操作excel,包括打开,保存,删除,新增,复制,设置属性等等

    java调用ocx控件,jacob,jar和dll文件

    通常,`jacob.dll`需要放在Java的系统库目录下,或者在运行时通过设置`java.library.path`属性来指定其位置。 调用OCX控件的过程大致如下: 1. 加载DLL:使用`System.loadLibrary("jacob")`或`Runtime.getRuntime...

    jacob的excel转pdf

    "jacob的excel转pdf"项目提供了一种解决方案,它可能利用了Java的Jacob库来实现这个功能。以下是对这个主题的详细解释。 Jacob(Java Object for Accessing COM)是一个开源Java库,允许Java程序与COM(Component ...

    jacob-1.18 Demo, 完整运行,Html转换Excel

    这个Demo提供了完整的解决方案,使开发者能够轻松地在自己的项目中应用这一功能。 首先,了解Jacob的基本概念至关重要。Jacob的核心是通过Java Native Interface (JNI) 实现的,它使得Java可以直接调用COM接口,...

    通过 JACOB 实现 Java调用ocx控件

    在现代的软件开发中,跨平台编程能力...而JACOB提供了一种有效的方法,使得Java开发者能够在需要时调用这些控件。虽然整个过程可能稍显复杂,但通过合理配置和代码示例的帮助,可以有效地在Java中实现对OCX控件的调用。

    jacob操作WPS、Office对应Word、Excel、PPT生成PDF

    jacob操作WPS、Office对应Word、Excel、PPT生成PDF,采用版本为jaco1.7X。

    java使用jacob将word,excel,ppt转成html

    Java 使用 Jacob 库将 Office 文件转换为 HTML 是一个常见的需求,尤其在自动化处理文档或在线预览场景中。...在提供的压缩包中,你应该能找到已经实现的示例代码和所需的库文件,可以作为学习和开发的参考。

Global site tag (gtag.js) - Google Analytics