Eclipse启动了错误的.Class文件

时间:2014-03-26 19:59:29

标签: java eclipse

我对Java比较陌生,而且我一直有一个让我感到沮丧的反复出现的问题。

我在同一个Project文件夹中有两个类文件:' Main.java' &安培; ' Client.java'

' Main.java'是服务器(我先运行它)。 我尝试运行Client.java以连接到服务器。但是,它不断重新启动Main.java'无论我试图解决这个问题。我试过选择' Run As'和'运行配置..'但似乎没什么用。这在几个项目中发生了我,我似乎无法找到解决方案。

这是我的代码:

1:Main.java

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketAddress;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) throws IOException {
        try {
            final int PORT = 6677;
            ServerSocket server = new ServerSocket(PORT);
            System.out.println("Waiting for clients...");

            while (true) {
                Socket s = server.accept();

                System.out.println("Client connected from "
                        + s.getLocalAddress().getHostName());

                Client chat = new Client(s);
                Thread t = new Thread(chat);
                t.start();
            }
        } catch (Exception e) {
            System.out.println("An error occured.");
            e.printStackTrace();
        }
    }

}

2:Client.java

import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class Client implements Runnable {

    private Socket socket;

    public Client(Socket s) {
        socket = s;
    }

    @Override
    public void run() {
        try {
            Scanner in = new Scanner(socket.getInputStream());
            PrintWriter out = new PrintWriter(socket.getOutputStream());

            while (true) {
                if (in.hasNext()) {
                    String input = in.nextLine();
                    System.out.println("Client Said: " + input);
                    out.println("You Said: " + input);
                    out.flush();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:2)

那是因为程序的执行(无论它里面有多少个类)总是从包含" main()"的类开始。功能。 如您所见,Main.java是包含main()函数的文件,因此该程序的执行始终以此开头。 最简单的解决方案之一(不是最好的)是在main函数中创建客户端实例。希望这有帮助!