Rodar comando do Linux em Java

9 respostas
dsystem

Olá pessoal,

Estou tentando rodar um comando no linux, mas não estou conseguindo.

Estou utilizando o RuntimeExec para conseguir, mas nada feito

Meu código está assim

Runtime.getRuntime().exec("sudo mount -t cifs -o username=user,password=pass //IpWindows /Volume/Linux");

Alguém poderia me dar uma ajuda?

Valew!

9 Respostas

lina

dsystem:
Olá pessoal,

Estou tentando rodar um comando no linux, mas não estou conseguindo.

Estou utilizando o RuntimeExec para conseguir, mas nada feito

Meu código está assim

Runtime.getRuntime().exec("sudo mount -t cifs -o username=user,password=pass //IpWindows /Volume/Linux");

Alguém poderia me dar uma ajuda?

Valew!

Oi,

Runtime.getRuntime().exec("sudo mount -t cifs -o user=user,password=pass //IpWindows /Volume/Linux");

Ou então, tente chamar um sh que faça isso:

Runtime.getRuntime().exec("/<caminho>/Arquivo.sh");

Tchauzin!

dsystem

Oi Lina, em primeiro lugar, obrigada por me responder.

Então, eu tentei dessa forma

Runtime.getRuntime().exec("sudo mount -t cifs -o username=user,password=pass //IpWindows /Volume/Linux");

Mas ele não funciona.
Para que eu consiga executar a segunda, eu teria que ter um arquivo.sh, porém eu não gostaria de criar entendeu?

[]'s

gpd38

Este é um código que testei e funciona, de repente vc consegue tirar base neste exemplo.

No windows temos a possibilidade de desliga-lo via comando.
CMD --> Shutdown

Como faze-lo em programação e na linguagem Java?
-----------------------------------------------------

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * @author Gustavo
 */
public class Main {

    public static void main(String[] args) {

        Main z = new Main();
        Main.Delisga();

    }

    public static void Delisga() {
        try {
            Runtime.getRuntime().exec("shutdown -s -t 180");
        } catch (IOException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
dsystem

gpd38,

Então, os comandos que eu crio para Windows utilizando o Runtime, eles executam que é uma beleza… Mas quando crio para linux… É uma tristeza, não funciona… To apanhando aqui há dois dias :frowning:

lina

Oi,

Então… acho que o comando esta de forma errada… tente isso: user=user,password=pass

Ou então, tente só assim antes para ver o que acontece:

Runtime.getRuntime().exec("/bin/bash");

ou

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

E ai?

lina

Oi,

Mais duas tentativas:

Runtime.getRuntime().exec("su -c 'mount -t cifs -o username=user,password=pass //IpWindows /Volume/Linux");

ou

Runtime.getRuntime().exec("su -c 'mount -t cifs -o username=user,password=pass //IpWindows /Volume/Linux").waitFor();

Obs: Estou chutando, pois não estou no Linux agora. Sorry

Tchauzin!

dsystem

Então lina,

Se executo esse comando no terminal, na mão… Ele vai certinho.

Agora se coloco pra ele executar pelo java… O bendito não vai. Não dá erro algum, mas não vai.rsrsrs

lina
......exec (new String[] { "/bin/bash", "-c", "mount -t cifs -o username=user,password=pass //IpWindows /Volume/Linux"" });
D

Por acaso vc tem instalado o OpenJDK java 6 RUNTIME instalado na sua maquina.?Passei por problemas semelhantes.

Criado 29 de junho de 2011
Ultima resposta 13 de ago. de 2013
Respostas 9
Participantes 4