Boa tarde Srs.,
Dado o seguinte cenário: um programa stand alone Java rodando no windows, precisa se conectar numa máquina Linux navegar na estrutura de diretórios (ou não) e executar um comando em lote (.sh)…
Como faço isso?
Abraço
Boa tarde Srs.,
Dado o seguinte cenário: um programa stand alone Java rodando no windows, precisa se conectar numa máquina Linux navegar na estrutura de diretórios (ou não) e executar um comando em lote (.sh)…
Como faço isso?
Abraço
Use um programa como o sftp (para ler os diretórios e copiar arquivos de forma segura e rápida) e o ssh para executar comandos em lote. Execute esses programas com Runtime.exec.
Uma implementação desses programas está disponível no pacote putty:
http://www.chiark.greenend.org.uk/~sgtatham/putty/
Se você tem de fazer tudo 100% Java e quer ter um monte de dor de cabeça, pode tentar uma implementação Java (procure por JCraft).
Minha aplicação Java deve fazer tudo isso que citei…
Sobre o JCraft, é FREE?
Valeu
É, mas é um pouco difícil de usar.
Se puder, use esses programas mesmo (psftp, pscp, plink) que vêm no pacote do putty.
Uma vantagem de usar o sftp, scp e ssh é que estão normalmente habilitados por default em máquinas Linux (hoje em dia dificilmente uma máquina Linux é acessível via ftp ou telnet, que eram os métodos inseguros e antigos de se fazer a mesma coisa).
Então, na realidade o usuário vai operar o programa de modo que não deva abrir (por falta de conhecimento) um terminal Putty…
Ou seja, ele tem apenas que que clicar em botões e ler mensagens!
Vou dar um exemplo simples (só vou dar o comando do DOS, a integração com o Java é por sua conta):
a) Copie o plink.exe para um diretório no seu PATH.
b) Digamos que o seu sistema use um usuário “thingol” com a senha “lotr” na máquina “beleriand”. Se você quiser listar os arquivos do diretório raiz com " ls /", por exemplo, você executaria:
plink -pw lotr thingol@beleriand “ls /”
Onde está “ls /”, troque por seu comando de lote.