CMD no JAVA

8 respostas
java
L

Estou desenvolvendo um sistema de vendas, e cheguei na parte de fazer o backup da base de dados.
O código que estou usando é este aqui:

Process p = null;
    Runtime r = Runtime.getRuntime();
    p = r.exec("C:/Program Files/MariaDB 10.2/bin/mysqldump.exe -uroot -pminhasenha mr_burguer_v2 > C:/testi.sql");

Quando eu executo este comando no CMD manualmente, funciona perfeitamente, mas se executo no no netbeans da este erro:

Oct 31, 2017 12:55:56 PM Presentacion.frm_backup jButton2ActionPerformed
SEVERE: null
java.io.IOException: Cannot run program "C:/Program": CreateProcess error=193, %1 is not a valid Win32 application
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at java.lang.Runtime.exec(Runtime.java:620)
	at java.lang.Runtime.exec(Runtime.java:450)
	at java.lang.Runtime.exec(Runtime.java:347)

Alguem pode me ajudar? Agradeço!

8 Respostas

S

Tente assim:

String[] programaComParametros = new String[] {
	"mysqldump.exe",
	"-uroot",
	"-pminhasenha",
	"mr_burguer_v2",
	">"
	"C:\\testi.sql"
};

String[] variaveisDeAmbiente = new String[] {};

File pastaDeExecucao = new File("C:\\Program Files\\MariaDB 10.2\\bin");

Process processo = Runtime.getRuntime().exec(programaComParametros, variaveisDeAmbiente, pastaDeExecucao);
int exitCode = processo.waitFor();
System.out.println("Programa executado! Exit Code: " + exitCode);
L

Nao funcionou amigao! Mesmo assim, obrigado pela ajuda!

S

Ocorre o mesmo problema?

L

Sim! Simplesmente ele nao grava quando uso java, mas pelo CMD funciona tranquilamente!

S

Mas ele dá alguma mensagem de erro?
Talvez você precise ficar lendo a saída do processo, nesse caso tenta utilizar essa classe aqui.

D

Cuidado… Você precisa garantir o consumo dos streams do processo.
Já mencionei isso aqui no GUJ várias e várias vezes no passado…
Leitura obrigatória: https://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html

S

tenta assim:
p = r.exec("C:/Program\ Files/MariaDB\ 10.2/bin/mysqldump.exe -uroot -pminhasenha mr_burguer_v2 > C:/testi.sql");

L

Deu este erro, amigão:

java.io.IOException: Cannot run program "C:/Program\": CreateProcess error=193, %1 is not a valid Win32 application
    	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    	at java.lang.Runtime.exec(Runtime.java:620)
    	at java.lang.Runtime.exec(Runtime.java:450)
    	at java.lang.Runtime.exec(Runtime.java:347)
Criado 31 de outubro de 2017
Ultima resposta 1 de nov. de 2017
Respostas 8
Participantes 4