Хорошо, я должен был бежать от имени администратора. Теперь он сохранен и работает с 64-битной Java. Большое спасибо. Ваша помощь очень ценится.

я есть следующая конфигурация:

1) Windows 10 64-битная

2) Приложение, которое имеет только 32-битную версию и доступно через COM.

Я получаю доступ к файлу .dll 32-битного приложения, используя tlbimb.jar для создания необходимых интерфейсов, и у меня все получается.

Сценарий 1. Я пытаюсь получить доступ к 32-разрядному приложению с помощью Java 832-битный монтаж. Я могу вызвать методы через COMуспешно без каких-либо проблем.

Сценарий 2. Я пытаюсь получить доступ к 32-разрядному приложению с помощью 64-разрядной установки Java 8. Я получаю сообщение об ошибке:

Exception in thread "main" com4j.ExecutionException: com4j.ComException: 80040154 CoCreateInstance failed : Class not registered : .\com4j.cpp:153

Я искал исключение в Stackoverflow / Google, и я сделал следующее:

1) Зарегистрировал dll приложения, используя как Sys64WOW / regsvr32.exe, так и System32 / regsvr32.exe.

2) Зарегистрировал com4j dll (32- и 64-разрядную), используя как Sys64WOW / regsvr32.exe, так и System32 / regsvr32.exe.

3) Скопировал dll в папки Sys64WOW и System32.

Я сделал все вышеперечисленное отдельно, проверив все возможные комбинации. Указанная ошибка при использовании 64-битной Java все еще существует.

Я пытался использовать другой мост (Джейкоб). На 32-битной Java это удается, на 64-битной Java это не удается.

У меня есть вопрос к кому-то, кто может знать: есть ли способ подключить приложение, которое, насколько я могу судить, предлагает толькоWin32 COM dll[1], используя любой из доступных мостов Java / COM иJava 64bit? Или просто 32-битная COM + 64-битная Java не подключаема?

[1]: Я проверил OLE / COM Viewer и в библиотеке типов есть только одна запись "0 Win32 =", поэтому я подразумевал, что это означает, что Win64 COM dll отсутствует, верно?

Ответы на вопрос(1)

Ваш ответ на вопрос