com4j 80040111 CoCreateInstance失败:ClassFactory无法提供请求的类

时间:2015-01-08 11:55:04

标签: java com4j

我想用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位Windows 7上使用64位JVM运行该程序。

我试图解决的问题:

1)我使用regsvr32

注册com4j.dll

2)添加com4j.dll作为com4j.jar

的原生库

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

1 个答案:

答案 0 :(得分:0)

您不需要在系统中注册com4j.dll。相反,你应该注册你的3d-part 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了解详情。