Java 找不到主类?
我必须为我的大学创建一个简单的聊天室,当我尝试在NetBeans上运行它时,它会说:“找不到主类”。我不明白,我相信我有一门主课,所以谁能告诉我问题出在哪里?代码如下:Java 找不到主类?,java,multithreading,sockets,Java,Multithreading,Sockets,我必须为我的大学创建一个简单的聊天室,当我尝试在NetBeans上运行它时,它会说:“找不到主类”。我不明白,我相信我有一门主课,所以谁能告诉我问题出在哪里?代码如下: import java.io.* ; import java.net.*; public class server { private static ServerSocket socketservidor = null; private static Socket socketcliente = null;
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);
}
}
}
import java.io.*;
导入java.net。*;
公共类服务器{
私有静态服务器套接字socketservisidor=null;
私有静态套接字socketcliente=null;
私有静态final int maxclients=4;
私有静态最终客户线程[]hilos=新客户线程[maxclientes];
公共静态void main(字符串参数[]){
int=2222;
如果(参数长度<1){
System.out.println(“CONEXION Realizationa CORRECTAMENTE\n”
+“聊天INICIADO CORRECTAMENTE\n”+“NUM.PUERTO=”
+波多黎各);
}否则{
puerto=Integer.valueOf(args[0]).intValue();
}
试一试{
socketservidor=新服务器套接字(波多黎各);
}捕获(IOE异常){
系统输出打印ln(e);
}
while(true){
试一试{
socketcliente=socketservisidor.accept();
int i=0;
对于(i=0;i>”+nombre+”:“+linea);
}
if(threads[i]!=null&&threads[i]==this){
threads[i].salida.println(“YO:+linea”);
}
}
}
对于(int i=0;i
文件名必须与java类名相同。例如,若类名为“sever”,那个么该文件应该称为server.java。我可以用eclipse作为午餐。试试这个
在项目文件夹上单击鼠标右键,单击“属性”,然后从左侧的菜单中选择“运行”。您现在可以在屏幕上看到main类。单击browse,然后选择服务器类。然后,当您运行项目时,错误将不存在,服务器将开始运行 您是否尝试过用一个更简单的程序重现问题?您如何运行它?您是否构建了项目?IDE可能不会自动编译源代码。这可能是你出错的原因。我认为这甚至不应该编译。在同一个文件中有两个类,这在Java中是不允许的。你确定Netbeans知道哪个类是你的主类吗?它应该会问,但是如果在编译过程中出现问题,就根本不会有类。
server
是一个有效的(虽然不是惯用的)类名。类名不必以大写字母开头,它只是一种预先输入的样式。如果您的JAVA\u主页设置正确,那么您应该能够从comand行“javac server.JAVA”中获取午餐使用java文件导航到目录后。这是我编译完这个文件后在控制台中看到的内容:“server.java:40:warning:unmappable character for encoding Cp1257 oc.println”(“Servidor ocupado.Vuelve a intentar m├?"塔德";;