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
Chamar outras linguagens de programação em java
7 Respostas
Bom nao sei se posso te ajudar,
mas explique melhor o que quer…
tem o enunciado do exercicio.
Abs
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.
Velhão…
Pesquise sobre DSL (Domain Specific Language). Acredito que esta seja a solução…

AS
Ok amigo obrigado pela resposta, vou da uma pesquisada sim ;D e qualquer coisa posto aqui, vlw.
Seguindo o conselho do amigo lhe indico a leitura desse artigo:
http://www.linhadecodigo.com.br/Artigo.aspx?id=1456
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.
Olá
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:
-
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
-
Sockets. Os programas criam sockets e trocam dados por eles. Na maioria ds linguagens é fácil usar sockets. Serve para qualquer sistema operacional
-
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.
-
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)