【问题标题】:com4j 80040111 CoCreateInstance failed : ClassFactory cannot supply requested classcom4j 80040111 CoCreateInstance 失败:ClassFactory 无法提供请求的类
【发布时间】:2015-01-08 11:55:03
【问题描述】:

我想用 Java 编写 CD/DVD 刻录程序。搜索后,我发现这个解决方案是通过here 给出的。我跟着它,但是当我运行这个程序时出现错误:

Exception in thread "main" com4j.ExecutionException: com4j.ComException: 80040111 CoCreateInstance failed : ClassFactory cannot supply requested class : .\com4j.cpp:153
    at com4j.ComThread.execute(ComThread.java:203)
    at com4j.Task.execute(Task.java:25)
    at com4j.COM4J.createInstance(COM4J.java:97)
    at com4j.COM4J.createInstance(COM4J.java:72)
    at com.ms.imapi2.ClassFactoryExt.createMsftDiscFormat2Data(ClassFactoryExt.java:16)
    at com.ms.main.MainClass.main(MainClass.java:19)
Caused by: com4j.ComException: 80040111 CoCreateInstance failed : ClassFactory cannot supply requested class : .\com4j.cpp:153
    at com4j.Native.createInstance(Native Method)
    at com4j.COM4J$CreateInstanceTask.call(COM4J.java:117)
    at com4j.COM4J$CreateInstanceTask.call(COM4J.java:104)
    at com4j.Task.invoke(Task.java:51)
    at com4j.ComThread.run0(ComThread.java:153)
    at com4j.ComThread.run(ComThread.java:134)

注意 我在带有 64 位 JVM 的 64 位 Windows 7 上运行这个程序。

我试图解决的问题:

1) 我使用 regsvr32 注册了com4j.dll

2) 添加com4j.dll 作为com4j.jar 的原生库

代码是否有问题或我必须做的其他事情才能使其运行。

【问题讨论】:

    标签: java com4j


    【解决方案1】:

    您无需在系统中注册 com4j.dll。相反,您应该注册您的 3d 部分 dll。

    还要确保您有用于处理 COM dll 的 java 类。它们可以使用 Com4J 文件夹中的 tlbimp.jar 生成。

    java -jar tlbimp.jar -o "..." -p "..." absolute_path_for_dll
    

    在哪里

    • -o - 生成文件所在的目标目录。
    • -p - java 包。

    使用示例:

    java -jar tlbimp.jar -o C:/projects/com4j/generated -p com.example C:/projects/dll/3d-part.dll
    

    查看tutorial了解更多信息。

    【讨论】:

    • 我对 IMAPI2.dll 和 IMAPIFS.dll 做了同样的事情,但仍然抛出异常。
    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2021-08-30
    相关资源
    最近更新 更多