[RESOLVIDO] Executar aplicação Java em servidor

Galera aqui em casa tem um servidor linux com apache, mysql, dns, samba e outras coisinhas. A minha pergunta é eu tenho um aplicativo java se( no caso um server para um chat de bate-papo) e queria colocá-lo para executar no servidor, alguém sabe como? É preciso desse tal de tomcat? ou tomdog?(brincadeirinha :D). Bom é essa minha dúvida. Vou colocar o código da classe aqui que é bem simples mesmo só para teste, para caso alguem não tenha entendido como está escrito o meu código java.

/**
 * ChatSimplesServer.java
 * Recebe e envia mensagens para os clientes
 * @author Lucas Santos
 * Criado em 08/05/2012, 23:13:39
 */
import java.io.*;
import java.net.*;
import java.util.*;

public class ChatSimplesServer {
    ArrayList clientOutputStreams; // Armazena os fluxos de saídas dos clientes conectados
    
    
    public static void main (String[] args) {
        new ChatSimplesServer().go();
    }
    
    /**
     * Cria um objeto ServerSocket em uma porta especifíca para aguarda solicitações de clientes.
     * Captura o fluxo de saída( mensagens recebidas ) de cada cliente e os adiciona ao ArrayList clientOutputStream( de fluxo de saídas de clientes ).
     * Cria um objeto Thread e executa a tarefa da classe interna ClientHandler( Manipulador de Clientes ).
     */
    public void go() {
        clientOutputStreams = new ArrayList();
        
        try {
            ServerSocket serverSock = new ServerSocket(5000); // cria um soquete de conexão na porta 5000
            
            // loop infinito
            while(true) {
                Socket clientSocket = serverSock.accept(); // aguarda solicitações de clientes e retorna um objeto Socker em uma porta diferente
                PrintWriter writerwriterOutput = new PrintWriter( clientSocket.getOutputStream() ); // captura fluxo de saída( mensagens recebidas pelo servidor )
                clientOutputStreams.add(writerwriterOutput); // adiciona o fluxo( objeto PrintWriter ao ArrayList de fluxo de saídas de clientes )
                Thread t1 = new Thread( new ClientHandler(clientSocket) );
                t1.setName("Manipulador de Clientes");
                t1.start();
                System.out.println("Conexão Estabelecida!");
            }
        }
        catch(Exception ex) {
            ex.printStackTrace();
        }
    } // fim do método go()
    
    /**
     * Classe interna Runnable( tarefa do thread "Manipulador de Clientes" ) que manipula os clientes.
     * Captura o fluxo de entrada e faz a leitura das mensagens no fluxo. Envia as mensagens ao método enviarATodos()
     */
    public class ClientHandler implements Runnable {
        BufferedReader reader;
        Socket sock;
        
        public ClientHandler(Socket clientSocket) {
            try {
                sock = clientSocket;
                InputStreamReader streamReader = new InputStreamReader( sock.getInputStream() ); // captura o fluxo de entrada
                reader = new BufferedReader(streamReader); // encadeia um objeto BufferedReader à um fluxo de entrada para uma melhor leitura
            }
            catch(Exception ex) {
                ex.printStackTrace();
            }
        } // fim do construtor
        
        public void run() {
            String messagem;
            
            try {
                // Enquanto houver mensagem a ser lida.
                while ( ( messagem = reader.readLine() ) != null) { 
                    System.out.println("Lido " + messagem);
                    enviarATodos(messagem);
                }
            }
            catch(Exception ex) {
                ex.printStackTrace();
            }
        } // fim do método run()
    } // fim da classe interna
    
    /**
     * Itera pela coleção de ArrayList de clientes. Escrevendo a mensagem no fluxo de saída de cada um deles.
     * @param messagem Mensagem a ser enviada para o fluxo de saída, para ser exibida para os clientes
     */
    public void enviarATodos( String messagem ) {
        Iterator it = clientOutputStreams.iterator();
        
        // Enquanto houver mais elementos na coleção
        while( it.hasNext() ) {
            try {
                PrintWriter writer = (PrintWriter) it.next(); // captura o fluxo de saída do objeto cliente atual
                writer.println(messagem);
                writer.flush();
            }
            catch(Exception ex) {
                ex.printStackTrace();
            }
        }
    } // fim do método enviarATodos()
}

Obs: Quem já leu o livro UseACabeça Java deve lembrar desse código( aplicativo de bate-papo simples e ridículo)

Você só precisa do Java, não precisa de mais nada.

Acho que entendi. Então eu só preciso instalar o JDK no ubuntu server e executar o java ChatSimplesServer e deixar ele rodando? Se eu deixar ele rodando, ele não atrapalha em nenhuma outra função do servidor?

Acho que entendi. Então eu só preciso instalar o JDK no ubuntu server e executar o java ChatSimplesServer e deixar ele rodando? Se eu deixar ele rodando, ele não atrapalha em nenhuma outra função do servidor?[/quote]

Bom, você vai usar um pouco da memória e do CPU do servidor. A única coisa que pode sair errado é se outra aplicação tentar usar a mesma porta TCP; De resto, é uma aplicação como qualquer outra.

Acho que entendi. Então eu só preciso instalar o JDK no ubuntu server e executar o java ChatSimplesServer e deixar ele rodando? Se eu deixar ele rodando, ele não atrapalha em nenhuma outra função do servidor?[/quote]

Bom, você vai usar um pouco da memória e do CPU do servidor. A única coisa que pode sair errado é se outra aplicação tentar usar a mesma porta TCP; De resto, é uma aplicação como qualquer outra.[/quote]

AHSDUASDHOIDHIODHASI…Pelo visto essa é uma dúvida que eu deveria ter colocado em Java Básico e não Avançado. Bom, agora vou pesquisar no google como instalar no ubuntu server. Obrigado a todos. Abraços.

Acho que entendi. Então eu só preciso instalar o JDK no ubuntu server e executar o java ChatSimplesServer e deixar ele rodando? Se eu deixar ele rodando, ele não atrapalha em nenhuma outra função do servidor?[/quote]

Bom, você vai usar um pouco da memória e do CPU do servidor. A única coisa que pode sair errado é se outra aplicação tentar usar a mesma porta TCP; De resto, é uma aplicação como qualquer outra.[/quote]

AHSDUASDHOIDHIODHASI…Pelo visto essa é uma dúvida que eu deveria ter colocado em Java Básico e não Avançado. Bom, agora vou pesquisar no google como instalar no ubuntu server. Obrigado a todos. Abraços.[/quote]

no caso da JDK, é só descompactar o .tar.gz e setar uma variável de ambiente JAVA_HOME e adicioná-la ao final da variável PATH. Para executar o seu programa é só usar o comando java.

Acho que entendi. Então eu só preciso instalar o JDK no ubuntu server e executar o java ChatSimplesServer e deixar ele rodando? Se eu deixar ele rodando, ele não atrapalha em nenhuma outra função do servidor?[/quote]

Bom, você vai usar um pouco da memória e do CPU do servidor. A única coisa que pode sair errado é se outra aplicação tentar usar a mesma porta TCP; De resto, é uma aplicação como qualquer outra.[/quote]

AHSDUASDHOIDHIODHASI…Pelo visto essa é uma dúvida que eu deveria ter colocado em Java Básico e não Avançado. Bom, agora vou pesquisar no google como instalar no ubuntu server. Obrigado a todos. Abraços.[/quote]

no caso da JDK, é só descompactar o .tar.gz e setar uma variável de ambiente JAVA_HOME e adicioná-la ao final da variável PATH. Para executar o seu programa é só usar o comando java. [/quote]

E como eu setaria a variável JAVA_HOME? Você diz no caso setar o caminho de onde estiver o a pasta principal do jdk e colocar no valor de JAVA_HOME e adicionar JAVA_HOME após PATH? Eu sei fazer isso no windows, mas nao no linux.