não sei se agluem pode me ajudar, eu procurei na internet e não achei nada sobre JAVA fazer SSH e SCP (LINUX) a unica coisa que acho é o Runtime.getRuntime().exec();
Bem, isso funciona no Linux… mas se eu fosse utilizar no linux eu usaria Bash é mais simples rapido… e não se mata pra fazer…
ai vem o porem exite o PSCP que é emulador de SCP para windows e o Run… chama um BAT que não executa direito essa porcaria… pq o BAT é um LIXO… literalemente… e naõtem como chamar ele separamaente tipo colocar o pscp.exe no system32 e chamar direto no runtime.exec(pscp login@ip…); pq o runtime não roda todos os comando existentes no maldito window.s… mas roda todos do linux (será pau no java… acho que não)…
Então… alguem sabe como schmar comandos do system 32 pra utilizar separadamente ou ja viu alguma classe java que você instancie ou herde para fazer um scp … ???
Ora, o Runtime.exec não roda diretamente uma .BAT ou .CMD; você precisa especificar o cmd.exe ou o command.com (depende da sua versão do Windows; se estiver usando uma versão muito antiga, como o Windows 98 - que não será suportado pelo Java 7 - é commando.com).
Exemplo para rodar uma batch:
Process proc = Runtime.getRuntime().exec (new String[]{"cmd.exe", "/c", "suaBatchPodreEInutil.bat", "parametro1", "parametro2"});
...
Mas acho melhor usar os comandos do Putty direto, em vez de confiar numa “batch podre e inútil” do Windows, como você está morrendo de vontade de dizer. Eu também acho difícil usar uma batch (tanto é que no Windows Server 2008 ela será substituída pelo “Monad”), mas não é tão podre e inútil conforme você diz.
pscp - cópia de arquivos via SCP
psftp - cópia de arquivos via SFTP
plink - executa um comando remoto, como se fosse o SSH
Exemplo:
Process proc = Runtime.getRuntime().exec (new String[]{"pscp.exe", "-pw", "suaSenha", "-ls", "usuario@maquina:/diretorio"});
...