0

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

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) 我com4j.dll使用 regsvr32注册

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

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

4

1 回答 1

0

您不需要在系统中注册 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

查看教程以获取更多信息。

于 2015-01-11T09:17:05.280 回答