Carregar DLL com JNI

4 respostas
ShOtCeL

Bom dia pessoal,

Estou com o seguinte problema: Tenho uma DLL desenvolvida em C# por uma outra empresa, e preciso acessar dois métodos que estão em uma classe dentro da DLL, estes métodos usam como assinatura String.

O problema é que a classe Java não está reconhecendo os métodos por conta das assinaturas.

Alguém já teve esse problema, alguém poderia me ajudar?

Obrigado!

4 Respostas

J

uma dll c# não é código nativo. É IL(Intermediate Language), ou seja, byte code dotnet. Java só pode acessar código nativo, e através de jni ou jna.
Uma solução seria criar um mapeamento em c++, para a dll C#, e mapear do java essa dll nativa. Um trabalho que eu diria porco.

Na minha opinião, é preferível reescrever o código em c++, pois ficaria uma solução adequada e sem gambiarras.

ShOtCeL

juliocbq:
uma dll c# não é código nativo. É IL(Intermediate Language), ou seja, byte code dotnet. Java só pode acessar código nativo, e através de jni ou jna.
Uma solução seria criar um mapeamento em c++, para a dll C#, e mapear do java essa dll nativa. Um trabalho que eu diria porco.

Na minha opinião, é preferível reescrever o código em c++, pois ficaria uma solução adequada e sem gambiarras.

O problema é que não posso reescrever o código, pois é um código de uma outra empresa.

Algum tutorial de como mapear a DLL ???

Obrigado.

J

ShOtCeL:
juliocbq:
uma dll c# não é código nativo. É IL(Intermediate Language), ou seja, byte code dotnet. Java só pode acessar código nativo, e através de jni ou jna.
Uma solução seria criar um mapeamento em c++, para a dll C#, e mapear do java essa dll nativa. Um trabalho que eu diria porco.

Na minha opinião, é preferível reescrever o código em c++, pois ficaria uma solução adequada e sem gambiarras.

O problema é que não posso reescrever o código, pois é um código de uma outra empresa.

Algum tutorial de como mapear a DLL ???

Obrigado.

Aqui tem um bom tutorial.

Mas tenha em mente que seu projeto terá de usar 2 vms.

ShOtCeL

juliocbq:
ShOtCeL:
juliocbq:
uma dll c# não é código nativo. É IL(Intermediate Language), ou seja, byte code dotnet. Java só pode acessar código nativo, e através de jni ou jna.
Uma solução seria criar um mapeamento em c++, para a dll C#, e mapear do java essa dll nativa. Um trabalho que eu diria porco.

Na minha opinião, é preferível reescrever o código em c++, pois ficaria uma solução adequada e sem gambiarras.

O problema é que não posso reescrever o código, pois é um código de uma outra empresa.

Algum tutorial de como mapear a DLL ???

Obrigado.

Aqui tem um bom tutorial.

Mas tenha em mente que seu projeto terá de usar 2 vms.

obrigado Julio.

Não gosto de fazer esse tipo de coisa, mas vamos lá …

Assim q tiver concluído posto novamente aqui para mostrar qual foi a solução, com certeza alguém um dia terá este problema também.

Criado 18 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 4
Participantes 2