Abrir programas em Java, a partir de Outros prog's em Java

Precisava de saber como se abre programas em java a partir de outros programas em java.
Como por exemplo, um menu k tem ligaçoes para vários programas resolvidos individualmente cada. :stuck_out_tongue:

vc pode executar qq programa usando:

Runtime.getRuntime().exec("linha_de_comando");

de uma olhada na API da classe java.lang.Runtime para mais opcoes

Hhhhmmmmm, que tal fazer uma interface comum, onde suas classes java de outros programas implementam tal interface, por exemplo com um método executar().

Aí você carrega a classe com um Class.forName(myClass), por exemplo, e depois executa a classe chamando sua interface comum executar().

Diria que fica mais elegante, mas você irá precisar de suas classes de outros programas no classpath.

:cry:

Já estava tentando fazer este procedimento para abrir o programa Maple através de um arquivo class, mas obtive os seguintes erros:

Exception in thread “main” java.io.IOException: CreateProcess: cmaple -q error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:81)
at java.lang.ProcessImpl.start(ProcessImpl.java:30)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)
at java.lang.Runtime.exec(Runtime.java:591)
at java.lang.Runtime.exec(Runtime.java:429)
at java.lang.Runtime.exec(Runtime.java:326)
at Teste.main(Teste.java:24)

O código que escrevi está aqui

[i]import java.lang.;
import java.io.
;

public class Teste {
public static void main(String[] args) throws IOException {
System.out.println(“Abrir Maple”);
Runtime.getRuntime().exec(“cmaple -q”);
}

}[/i]

o que me parece eh que o programa cmaple ta retornando erro (2)

Beleza!!! Consegui abrir o programa através de um arquivo class.
Agora surge outro problema pra solucionar: como eu posso mandar dados em String pra dentro do programa e obter as resposta dele através de String também :?:

pow ke massa…

desse jeito posso invocar outros aplicativos??? tpw, eu usar um comando do ms-dos???

ah e outra coisa
tem como eu ao iniciar um aplicativo, fazer com que akela tela de console não apareça??? digamos que eu tenha criado algo com JFrame, mas eu quero que apareça somente as telas do JFrame e não aquela outra de console…

Estou usando:

Runtime.getRuntime().exec("C:\WINDOWS\system32\javaw.exe -jar L:\Sistemas\Java\Projetos\Proj1.jar");

mas só funciona quando eu fecho minha aplicação atual. Aparentemente o Java não abre outra instância, usa a mesma e deixa o programa que estou tentando abrir esperando, em fila. Como faço para que o programa abra em outra instância da JVM?

pra abrir programas externos funciona mas quero abrir um programa dentro de um jframe tipo quero abrir portable virtual box dentro do jframe