Chamar outras linguagens de programação em java

7 respostas
C

Olá amigos! Sou novo no forum e estou com um problema da faculdade que na verdade sei nem por onde começar^^ Bom é o seguinte meu professor pediu um programa em java que aceitasse outras linguas, c, c++, pascal… 5 linguas que ele quer. Bom alguem pode me ajudar a pelo menos por onde eu começo? Abraços

7 Respostas

gilmar_soares

Bom nao sei se posso te ajudar,
mas explique melhor o que quer…
tem o enunciado do exercicio.
Abs

C

Bom ele so falou o seguinte, pra gente fazer um programa em java que aceita-se as outras linguagens de programação! Tipo com o programa aberto, vc poderá escrever em pascal, c, c++… entendeu agora? ele mandou ate agente pesquisar JNI.

A

Velhão…

Pesquise sobre DSL (Domain Specific Language). Acredito que esta seja a solução…

:smiley:
AS

C

Ok amigo obrigado pela resposta, vou da uma pesquisada sim ;D e qualquer coisa posto aqui, vlw.

gilmar_soares

Seguindo o conselho do amigo lhe indico a leitura desse artigo:
http://www.linhadecodigo.com.br/Artigo.aspx?id=1456

AndersonMG

Para vc chamar C, basta vc fazer uma chamada do sistema para o executável… exemplo:

Runtime.getRuntime().exec(" cmd.exe /C start Login.exe ");

seria o mesmo que entrar no prompt e executar esse comando.

Luca

Olá

AndersonMG:
Para vc chamar C, basta vc fazer uma chamada do sistema para o executável… exemplo:

Runtime.getRuntime().exec(" cmd.exe /C start Login.exe ");

seria o mesmo que entrar no prompt e executar esse comando.

Não é bem assim. O que você sugeriu serviria para iniciar um outro program e acredito que ele quer que os programas se comuniquem.

Respondendo à pergunta…

Há vários meios de fazer a comunicação entre 2 programas em linguagens diferentes:

  1. Os programas leem e escrevem arquivos texto em um determinado diretório que eles ficam monitorando para saber se chegou arquivo novo. Este método serve para qualquer linguagem e qualquer sistema operacional

  2. Sockets. Os programas criam sockets e trocam dados por eles. Na maioria ds linguagens é fácil usar sockets. Serve para qualquer sistema operacional

  3. Um programa chamar diretamente métodos do outro em outra linguagem. Com Java se pode chamar métodos em C ou em DLLs via JNI. Mas Java não aceita chamadas de outras linguagens diretamente, é o Java que precisa chamar via JNI e obter as respostas. Não serve para todas as linguagens porque não são todas as linguagens que permitem fazer DLLs corretamente que o Java entenda (exemplo, com VB não é fácil). Não garanto que funcione com todos os sistemas operacionais (nunca testei com Mac OS) e muitas das linguagens citadas não funcionam em todos os S.O.

  4. Usar um servidor intermediário. Aqui as possibilidades são muitas desde o obsoleto xml-rpc até web services em REST e/ou usando ESB (sem esquecer a possibilidade de JMS).

Se é um trabalho de escola e o professor pede JNI, a solução não será universal. Terá que ser feito a comunicação caso a caso.

[]s
Luca (que já usou muito JNI mas que neste caso usaria troca de arquivos .TXT com os dados separados por vírgula)

Criado 1 de maio de 2010
Ultima resposta 1 de mai. de 2010
Respostas 7
Participantes 5