2013-03-18 3 views
0

Мне нужно создать простой чат для моего университета, и когда я пытаюсь запустить его на NetBeans, он говорит: «Никаких основных классов не найдено». Я не понимаю, я считаю, что у меня есть основной класс, так может кто-нибудь сказать мне, где проблема? Вот код:Не найдено основного класса?

import java.io.* ; 
import java.net.*; 

public class server { 
    private static ServerSocket socketservidor = null; 
    private static Socket socketcliente = null; 
    private static final int maxclientes = 4; 
    private static final clienteThread[] hilos = new clienteThread[maxclientes]; 

    public static void main(String args[]) { 
     int puerto = 2222; 
     if (args.length < 1) { 
      System.out.println("CONEXION REALIZADA CORRECTAMENTE \n" 
        + "CHAT INICIADO CORRECTAMENTE \n" + "NUM. PUERTO=" 
        + puerto); 
     } else { 
      puerto = Integer.valueOf(args[0]).intValue(); 
     } 

     try { 
      socketservidor = new ServerSocket(puerto); 
     } catch (IOException e) { 
      System.out.println(e); 
     } 

     while (true) { 
      try { 
       socketcliente = socketservidor.accept(); 
       int i = 0; 
       for (i = 0; i < maxclientes; i++) { 
        if (hilos[i] == null) { 
         (hilos[i] = new clienteThread(socketcliente, hilos)) 
           .start(); 
         break; 
        } 
       } 
       if (i == maxclientes) { 
        PrintStream oc = new PrintStream(
          socketcliente.getOutputStream()); 
        oc.println("Servidor ocupado. Vuelve a intentar más tarde"); 
        oc.close(); 
        socketcliente.close(); 
       } 
      } catch (IOException e) { 
       System.out.println(e); 
      } 
     } 
    } 
} 

class clienteThread extends Thread { 

    private PrintStream salida = null; 
    private DataInputStream entrada = null; 
    private int maxclientes; 
    private final clienteThread[] threads; 
    private Socket socketcliente = null; 

    public clienteThread(Socket socketcliente, clienteThread[] threads) { 
     this.socketcliente = socketcliente; 
     this.threads = threads; 
     maxclientes = threads.length; 
    } 

    public void run() { 
     int maxclientes = this.maxclientes; 
     clienteThread[] threads = this.threads; 

     try { 
      entrada = new DataInputStream(socketcliente.getInputStream()); 
      salida = new PrintStream(socketcliente.getOutputStream()); 
      salida.println("Solo nos falta saber tu nombre para empezar:"); 
      String nombre = entrada.readLine().trim(); 
      salida.println("Bienvenido a nuestro chat " + nombre + "\n" 
        + "Ya puedes chatear con otros usuarios!" + "\n" 
        + " teclea /salir para abandonar chat"); 
      for (int i = 0; i < maxclientes; i++) { 
       if (threads[i] != null && threads[i] != this) { 
        threads[i].salida.println("***" + nombre 
          + " se ha conectado!!!***"); 
       } 
      } 
      while (true) { 
       String linea = entrada.readLine(); 
       if (linea.startsWith("/salir")) { 
        break; 
       } 
       for (int i = 0; i < maxclientes; i++) { 
        if (threads[i] != null && threads[i] != this) { 
         threads[i].salida.println(">>" + nombre + ":" + linea); 
        } 
        if (threads[i] != null && threads[i] == this) { 
         threads[i].salida.println("YO:" + linea); 
        } 
       } 
      } 
      for (int i = 0; i < maxclientes; i++) { 
       if (threads[i] != null && threads[i] != this) { 
        threads[i].salida.println("***" + nombre 
          + " se ha desconectado***"); 
       } 
      } 
      salida.println("***Te has desconectado del chat***"); 

      for (int i = 0; i < maxclientes; i++) { 
       if (threads[i] == this) { 
        threads[i] = null; 
       } 
      } 
      entrada.close(); 
      salida.close(); 
      socketcliente.close(); 
     } catch (IOException e) { 
      System.out.println(e); 
     } 
    } 
} 
+0

Вы пытались воспроизвести проблему с помощью более простой программы? – didierc

+0

Как вы его запускаете? И вы создали свой проект? – longhua

+0

IDE может не быть автоматической компиляцией источников. Это может послужить причиной вашей ошибки. –

ответ

0

Ваше имя файла должно совпадать с вашим именем класса java. Например, если имя класса «sever», тогда файл следует называть server.java. Я мог бы это сделать с затмением.

+0

'server' является допустимым (хотя и не обычным) именем класса. –

+0

извинения за мой предыдущий неясный комментарий. исправлено это;) – Highlander

+0

Названия классов не должны начинаться с заглавной буквы, это просто препонный стиль. – RudolphEst

0

Попробуйте это.

Щелкните правой кнопкой мыши по папке проекта, щелкните по свойствам, затем выберите прогон из меню с левой стороны. Вы сможете увидеть основной класс прямо сейчас. Нажмите кнопку «Обзор», а затем выберите класс сервера. Затем, когда вы запустите проект, ошибки не будет, и ваш сервер начнет работать.