runtime nao executa  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
KolT
Debugger
[Avatar]
Membro desde: 16/04/2005 13:17:18
Mensagens: 61
Localização: Brasília - DF
Offline

public void executarExterno() {
try {
Runtime executarComando = Runtime.getRuntime();
executarComando.exec("mysqldump -u root kayo > /home/kayo/backupkayo.sql");
System.out.println(executarComando.toString());
} catch (Exception erro) {
System.out.println(erro.toString());
}
}

o retorno deo sysout é: java.lang.Runtime@1571886

mas o mysqldump nao gera o backup!

my life is free now; linux & java
[MSN] [ICQ]
dreamspeaker
GUJ Ranger
[Avatar]

Membro desde: 22/04/2003 10:09:58
Mensagens: 752
Localização: SP - Capitar
Offline

Ao invés de erro.toString tente erro.printStacktrace()

Talvez a mensagem seja mais clara.

André Barbosa
Para de encher o saco e vai doar sangue!
twitter
[Email] [WWW]
KolT
Debugger
[Avatar]
Membro desde: 16/04/2005 13:17:18
Mensagens: 61
Localização: Brasília - DF
Offline

System.out.println(erro.printStackTrace());

indica um erro em println, tentei print mas continua indicando erro.

my life is free now; linux & java
[MSN] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

executarComando.exec("mysqldump -u root kayo > /home/kayo/backupkayo.sql");

O sinal de ">" é um comando que é interpretado pelo shell (ou seja, pelo /bin/bash ou pelo /bin/sh - depende do seu Unix/Linux).

Veja se o "mysqldump" tem uma opção de jogar a saída em um arquivo (sei lá, algo como "-out"), em vez de usar o ">".

Outra opção é usar /bin/sh -c:


[WWW]
dudaskank
GUJ Ranger
[Avatar]
Membro desde: 12/09/2003 14:59:26
Mensagens: 850
Localização: Suzano, SP, Brasil
Offline

KolT wrote:System.out.println(erro.printStackTrace());

indica um erro em println, tentei print mas continua indicando erro.


na verdade, é porque é só erro.printStackTrace(); mesmo, ele já manda pra saída padrão pra vc

Eduardo Oliveira

Toque a balada do amor inabalável, eterna love song de nós dois...

Página
[WWW]
KolT
Debugger
[Avatar]
Membro desde: 16/04/2005 13:17:18
Mensagens: 61
Localização: Brasília - DF
Offline

não tem e eu troquei a forma pra
executarComando.exec ("/bin/sh -c \"mysqldump -u root kayo > /home/kayo/backupkayo.sql\"");

mas deu na mesma. uma coisa interessante é que usando mysqldump -u root -p...

Enter password:

aparece na shell que eu rodei o eclipse o pedido da senha, sendo que não possuo senha, então por isso que eu tirei o -p, ou seja da sinal de vida..

erro.printStackTrace(); -> java.lang.Runtime@1571886

my life is free now; linux & java
[MSN] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Hum, quando você usa "exec", deve fornecer tudo que é necessário para a tal aplicação rodar. Se ele tenta usar a entrada-padrão para pedir a senha, você tem de obter um redirecionamento: o Java não vai lhe dar um "prompt" para obter a senha.

Se puder, passe a senha na linha de comando.
[WWW]
KolT
Debugger
[Avatar]
Membro desde: 16/04/2005 13:17:18
Mensagens: 61
Localização: Brasília - DF
Offline

ai que esta, nao tem senha.. digitando o comando que to tentando fazer o Java executar o 'backup' é gerado sem problema, mas na linha de codigo não.. como poderia fazer para usar -p e indicar a senha? que nao tem senha alias, so 'precionar o enter' ?

my life is free now; linux & java
[MSN] [ICQ]
jcatino
Thread.start()
[Avatar]

Membro desde: 18/08/2005 17:41:10
Mensagens: 45
Localização: São Paulo
Offline

KolT wrote:ai que esta, nao tem senha..


Em que diretório vc executa o "java -cp CLASSPATH classe..." ? Se vc executa ele agendado, faça-o desde uma bat que vá para o diretório onde esteja o executável.

Outra forma seria setar o PATH com o caminho do executável que quer rodar, para que seja executado desde qualquer diretório.

Se precisar variáveis setadas, vc precisar montar o ambiente também.

--
J Catino
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team