Problemas com Runtime

8 respostas
S

Olá pessoal, estou com uma dúvida aqui.
Tenho uma aplicação em C++ (chamada dbgen.exe) e gostaria que fosse chamado o prompt desta aplicação no meu código Java.
Fiz o seguinte:

try {  
			             Process p = Runtime.getRuntime().exec("cmd /C start C://Users//Samara//Desktop//dbgen//dbgen.exe");  
			             BufferedReader in = new BufferedReader(  
			                                 new InputStreamReader(p.getInputStream()));  
			             String line = null;  
			             while ((line = in.readLine()) != null) {  
			                 System.out.println(line);  
			             }  
			         } catch (IOException e) {  
			             e.printStackTrace();  
			         }  
		
		
	}

O problema é que ele aparece e desaparece rapidamente. Teria alguma forma de “segurar” ele na tela? Ou ainda… teria alguma forma de nem precisar gerar o executável, eu apenas mandar os parâmetros para ele, já no código Java?
Agradeço qualquer ajuda.

8 Respostas

lina

Oi,

Apenas mude sua linha de comando:

exec("C:\Users\Samara\Desktop\dbgen\dbgen.exe");

Tchauzin!

S

Olá Lina, não abriu mais nada aqui… nem se quer rapidamente :cry:

robinsonbsilva

Moça,

Normalmente os executáveis aceitam parametros de “inicialização”, mas isso varia de .exe p/ .exe

Exemplo:

private static String htmlViewer = "C:\Arquivos de programas\Internet Explorer\IExplore.exe";

    public static void showBrowser(String url) {

        String cmdFullScreen[] = new String[]{};
        cmdFullScreen = new String[]{" -k"};

        if (System.getProperty("os.name").startsWith("Linux")) {
            cmdArray = new String[]{htmlViewer, url};
        } else if (System.getProperty("os.name").startsWith("Mac OS X")) {
            cmdArray = new String[]{"\"" + htmlViewer + "\"", "\"" + url + "\""};
        } else if (System.getProperty("os.name").startsWith("Windows")) {
            cmdArray = new String[]{"\"" + htmlViewer + "\"", "\"" + url + "\""};
        }
        try {
            Runtime.getRuntime().exec(cmdArray, cmdFullScreen);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
S

Oi Robinson, ainda não funcionou… é uma pena :cry:
O Runtime funciona pra qualquer arquivo .exe? Agora fiquei na dúvida aqui…
Vê só se estou errando besteira no meu código:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		Browser b = new Browser();
		b.showBrowser("dbgen -s 1 -T d");
	}
public class Browser {

	    private static String htmlViewer = "C:\Users\Samara\Desktop\dbgen\dbgen.exe";  
	      
	    public static void showBrowser(String url) {  
	     
	    	System.out.println("Passei por aqui");
	         String cmdFullScreen[] = new String[]{};  
	        cmdFullScreen = new String[]{" -k"};  
	      
	        String[] cmdArray = null;
	        
			if (System.getProperty("os.name").startsWith("Linux")) {  
	            cmdArray = new String[]{htmlViewer, url};  
	       } else if (System.getProperty("os.name").startsWith("Mac OS X")) {  
	           cmdArray = new String[]{"\"" + htmlViewer + "\"", "\"" + url + "\""};  
	       } else if (System.getProperty("os.name").startsWith("Windows")) {  
	    	   
	    	   System.out.println("Entrou aqui");
	    	   System.out.println("Local: "+htmlViewer);
	    	   System.out.println("Url: "+url);
	    	   
	           cmdArray = new String[]{"\"" + htmlViewer + "\"", "\"" + url + "\""};  
	         
	       }  
	       try {  
	    	   
	           Runtime.getRuntime().exec(cmdArray, cmdFullScreen);  
	       } catch (Exception e) {  
	           e.printStackTrace();  
	       }  
	   }  
}
robinsonbsilva

Desculpa pela demora,

Então, esse código “funfa” certinho!
Já pensou na hipótese de passar “essa chamada” sem os parâmetros!??

Já vi problemas que impediam execução devido “parâmetros inválidos”
Aproveita e veja as permissões desse arquivo

boa sorte!

S

Então… eu fiz aqui com e sem parâmetros…
Nenhuma das duas opções funcionaram… esse código abre o prompt?

robinsonbsilva

Então, aí que está a “confusão”, em alguns PC’s abre…em outros não!!
Não sei por que :?:

S

Nossa… que estranho…
Eu consegui apenas abrir o prompt e também abre já na pasta que esta meu .exe. Mas, eu preciso chama-lo ainda para que seja executado… =/
Alguém faz idéia de como eu posso executar já a aplicação sem precisar digitar por exemplo dbgen.exe? :?

Criado 1 de setembro de 2009
Ultima resposta 1 de set. de 2009
Respostas 8
Participantes 3