Seguinte Bina0,
Fiz um exemplinho básico de como a coisa funcionaria (pelo menos ao meu ver), creio que para ficar um programa legal e bem feitinho de uma estudada em interface Swing para fazer um programinha que rode no tray por exemplo e também leia sobre Sockets e Streams que são a chave para uma comunicação de rede.
Aqui mesmo no GUJ tem a área de artigos e tutoriais são muito bons
http://guj.com.br/artigos.jsp
Fiz um exemplo básico do que envia e do que processa dei uma comentada por cima, mas eles são auto-explicativos.
Abaixo o programa que envia comandos
import java.net.Socket;
import java.io.DataOutputStream;
public class Manager {
public static void main(String[] args) {
try{
//Abre uma conexão com o programa que vai executar o comando
Socket conex = new Socket( "127.0.0.1",8888);
//Abre uma saida de dados
DataOutputStream saida = new DataOutputStream(conex.getOutputStream ());
//Envia um comando para o programa executar
saida.writeUTF ("explorer");
System.out.println ("Comando enviado!");
}catch (Exception e){
e.printStackTrace ();
}
}
}
Aqui o programa que executa os comandos
import java.net.ServerSocket;
import java.net.Socket;
import java.io.DataInputStream;
public class Process {
/** Metodo que executa qualquer comando
* "Este metodo executa dentro de um thread para não parar o processamento"
* @param _comando - String do comando a ser executado
*
**/
public static void execComandoT(final String _comando){
new Thread(){
public void run(){
try{
System.out.println ("Comando>" + _comando);
Runtime.getRuntime().exec(_comando);
}catch (Exception e){
e.printStackTrace ();
}
}
}.start();
}
public static void main (String[] args){
try{
//Cria um server socket que fica escutando as conexões
ServerSocket servlist = new ServerSocket(8888);
Socket conex;
DataInputStream entrada;
String msg;
while (!servlist.isClosed ()){
try{
System.out.println ("Aguardando...");
//Fica aguardando conexões
conex = servlist.accept ();
//Cria um stream que vai receber o comando a ser executado
entrada = new DataInputStream (conex.getInputStream ());
//Recebe o comando
msg = entrada.readUTF ();
//Se não for vazio manda executar o que recebeu
if (msg.length ()>0){
execComandoT (msg);
}
}catch (Exception e){
e.printStackTrace ();
}
}
}catch (Exception e){
e.printStackTrace ();
}
}
}
Espero que isto te ajude… Fortemente gostaria que não se contentasse com isto, mas sim fizesse um bem feito e completinho…
Qualquer duvida posta ae…
Att
Ricoldi