terça-feira, 11 de outubro de 2011

Comandos de Drive de CD em Linux

O comando seguinte serve para a abertura do drive de CD. O comando é de Shell, mas a chamada está sendo feita no Java.

Runtime.getRuntime().exec("eject /dev/cdrom");

E para fechar

Runtime.getRuntime().exec("eject -t /dev/cdrom");

Como o comando é Shell então esta execução só funciona no Linux (*nix).

Pode-se pensar num principio de um virus inofensivo que abre e fecha a gaveta 10 vezes.


import java.io.IOException;

public class Eject {

    public static void main(String[] args) {

        int v=10;
        for (int i = 0; i < v; i++) {

            try {
                Runtime.getRuntime().exec("eject /dev/cdrom");
                Thread.sleep(2000);
                Runtime.getRuntime().exec("eject -t /dev/cdrom");
                Thread.sleep(2000);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

O detalhe é que o LOOP é feito apenas 10 vezes. Se estiver em um "while(true)" será necessário "matar" o processo ou reiniciar o computador se o usuário não possuir a permissão.

O detalhe de efetuar um comando em Shell pelo Java  é que o computador pode achar que é o sistema operacional que está fazendo a chamada da execução.

Exporte em um arquivo .jar e você poderá efetuar a execução dele em qualquer ambiente Linux (*nix). Não esqueça de dar a permissão de execução ao arquivo.

O programa acima foi feito em parceria com o Márcio Ishida colega de trabalho que também desenvolve em Java.  Desenvolver em dois facilita na hora de ter ideias e dessa forma estamos trocando códigos e melhorando conforme aparecerão nos post's seguintes.

CUIDADO: Não me responsabilizo pela forma como este post for utilizado. O arquivo de manipulação de drives é apenas uma amostra para níveis de conhecimento de segurança, e desenvolvimento com segurança, que todo Bacharel em Sistemas deve conhecer e compartilhar.

Nenhum comentário:

Postar um comentário