2015-01-08 3 views
0

Я хочу записать программу записи CD/DVD на Java. После поиска я нашел этот Решение более here. Я последовал за ним, но когда я запускаю эту программу, я получил ошибку:com4j 80040111 Ошибка CoCreateInstance: ClassFactory не может предоставить запрошенный класс

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-битной виртуальной машиной Java.

То, что я пытался решить:

1) Я зарегистрировал com4j.dll с помощью regsvr32

2) Добавлена ​​com4j.dll как коренные библиотеки com4j.jar

Есть проблема в коде или что-то еще у меня есть чтобы сделать это.

ответ

0

Вам не нужно регистрировать com4j.dll в системе. Вместо этого вы должны зарегистрировать dll-3d-часть.

Также убедитесь, что у вас есть java-классы для работы с dll COM. Они могут быть сгенерированы с использованием tlbimp.jar из папки Com4J.

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

где

  • -o - каталог назначения, где сгенерированные файлы будут расположены.
  • -p - java package.

Пример использования:

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

Проверить tutorial для получения дополнительной информации.

+0

Я сделал то же самое с IMAPI2.dll и IMAPIFS.dll, но все же он выдает исключение. –