Conecte Java de 64 bits com dll COM de 32 bits usando Com4j ou Jacob

Eu tenho a seguinte configuração:

1) Windows 10 de 64 bits

2) Um aplicativo que possui apenas uma versão de 32 bits e está disponível no COM.

Acesso o arquivo .dll do aplicativo de 32 bits usando o tlbimb.jar para gerar as interfaces necessárias e obtive sucesso.

Cenário 1: tento acessar o aplicativo de 32 bits usando o Java 832 bits instalação. Eu posso invocar os métodos através do COMcom sucesso sem qualquer problema.

Cenário 2: tento acessar o aplicativo de 32 bits usando uma instalação do Java 8 de 64 bits. Recebo uma mensagem de erro:

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

Pesquisei a exceção no Stackoverflow / Google e fiz o seguinte:

1) Registrou a dll do aplicativo usando o Sys64WOW / regsvr32.exe e o System32 / regsvr32.exe

2) Registrou a dll com4j (32 e 64 bits) usando o Sys64WOW / regsvr32.exe e o System32 / regsvr32.exe

3) Copiou as DLLs nas pastas Sys64WOW e System32.

Eu fiz todas as etapas acima separadamente, verificando todas as combinações possíveis. O erro mencionado acima usando Java de 64 bits ainda existe.

Eu tentei usar outra ponte (Jacob). No Java de 32 bits, ele é bem-sucedido; no Java de 64 bits, ele falha.

Tenho uma pergunta para alguém que possa saber: existe alguma maneira de conectar um aplicativo que, até onde sei, oferece apenas umaDLL de Win32 COM[1], usando qualquer uma das pontes Java / COM disponíveis eJava 64bit? Ou simplesmente o Java COM + 64 bits de 32 bits não é conectável?

[1]: verifiquei o visualizador OLE / COM e, na biblioteca de tipos, existe apenas uma entrada "0 Win32 =, então sugeri que isso significa que não há dll Win64 COM, certo?

questionAnswers(1)

yourAnswerToTheQuestion