Dúvida com JNI

5 respostas
joca_java

Opa galera blz?

Seguinte,

precisamos fazer com que uma aplicação em Delphi, chame um método de nossa aplicação desenvolvida em Java certo? Então, gostaria de saber se seria possível fazer isto utilizando JNI. Alguem sabe dizer? Comentamos com o cliente sobre WebService mas não foi aceito.

[]´s

5 Respostas

Alexandre_Saudate

Qual o estado das aplicações? Estão fechadas ou ainda em desenvolvimento?

É o seguinte… uma ponte JNI funciona para o Java fazer uma chamada para uma aplicação… não o contrário. Assim, a única maneira talvez seria o Delphi executar o processo Java (.jar) normalmente, e ficar esperando o processo terminar.

Não pensei muito a respeito, mas é uma idéia.

joca_java

asaudate:
Qual o estado das aplicações? Estão fechadas ou ainda em desenvolvimento?

É o seguinte… uma ponte JNI funciona para o Java fazer uma chamada para uma aplicação… não o contrário. Assim, a única maneira talvez seria o Delphi executar o processo Java (.jar) normalmente, e ficar esperando o processo terminar.

Não pensei muito a respeito, mas é uma idéia.

Hum entendí asaudate mas nesse caso acho que não iria dar certo já que vou obter informações que estão na aplicação entendesse???

Luca

Olá

joca_java:
Opa galera blz?

Seguinte,

precisamos fazer com que uma aplicação em Delphi, chame um método de nossa aplicação desenvolvida em Java certo? Então, gostaria de saber se seria possível fazer isto utilizando JNI. Alguem sabe dizer? Comentamos com o cliente sobre WebService mas não foi aceito.

[]´s

Java pode chamar uma DLL feita em Delphi. Mas não há como Delphi chamar Java.

Para integrar os 2 sistemas há muitos meios:

  1. Delphi escreve um arquivo em determinado diretório que o Java lê e depois responde gravando arquivo resposta.

  2. XML-RPC. Todas as linguagens tem implementação disto que é uma invenção do mesmo cara que ajudou a criar o SOAP na Microsoft.
    Para Delphi: http://portuguese.osstrans.net/software/delphixml-rpc.html
    Para Java: http://ws.apache.org/xmlrpc/

  3. Sockets. As 2 aplicações trocam mensagens via sockets. Provavelmente é o meio mais simples.

  4. Web services. Se o cliente não quer, esquece.

[]s
Luca

joca_java

Luca:
Olá

joca_java:
Opa galera blz?

Seguinte,

precisamos fazer com que uma aplicação em Delphi, chame um método de nossa aplicação desenvolvida em Java certo? Então, gostaria de saber se seria possível fazer isto utilizando JNI. Alguem sabe dizer? Comentamos com o cliente sobre WebService mas não foi aceito.

[]´s

Java pode chamar uma DLL feita em Delphi. Mas não há como Delphi chamar Java.

Para integrar os 2 sistemas há muitos meios:

  1. Delphi escreve um arquivo em determinado diretório que o Java lê e depois responde gravando arquivo resposta.

  2. XML-RPC. Todas as linguagens tem implementação disto que é uma invenção do mesmo cara que ajudou a criar o SOAP na Microsoft.
    Para Delphi: http://portuguese.osstrans.net/software/delphixml-rpc.html
    Para Java: http://ws.apache.org/xmlrpc/

  3. Sockets. As 2 aplicações trocam mensagens via sockets. Provavelmente é o meio mais simples.

  4. Web services. Se o cliente não quer, esquece.

[]s
Luca

Beleza Luca!!! Valeu cara!!!

emersonfxbx

Ha sim uma forma de uma aplicação delphi chamar um metodo java: Java Invocation API. Basicamente voce carrega a maquina virtual em sua aplicação, carrega as classes, instancia objetos e pode chamar métodos

Aqui a documentação de como utilizar:

http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/invocation.html#wp9502

Aqui bem mastigado para delphi:

http://www.pacifier.com/~mmead/jni/delphi/JEDI/DOCS/delphi-jni-3.html

Conselho: Não sei quanto a você, mas a última vez que precisei acessar uma API em C/C++ no Delphi, eu passei raiva. Então, fica a dica, faz uma DLL em C++ com interface bem simples para o Delphi para fazer a chamada ao código Java, além de ser mais confortável para se trabalhar com a JNI. Nem precisa do VC++, o http://www.mingw.org que é de graça pode ser usado sem susto.
Isso lhe poupará alguns fios de cabelos (hehehe).

Criado 23 de maio de 2008
Ultima resposta 26 de mai. de 2008
Respostas 5
Participantes 4