我正在使用netbeans IDE,帮我解决错误

时间:2014-11-30 11:39:14

标签: java netbeans

/ *  *要更改此许可证标题,请在“项目属性”中选择“许可证标题”。  *要更改此模板文件,请选择“工具”|模板  *并在编辑器中打开模板。  * /     包com.server;

import java.awt.*;
import java.io.*;
import java.net.Socket;

public class Client {
private final ObjectOutputStream out;
private final ObjectInputStream in;
private final Robot robot;

public Client(String serverMachine,String clientname)
        throws IOException,AWTException {
    Socket socket = new Socket("servermachine",port);
    robot = new Robot();
    out = new ObjectOutputStream(socket.getOutputStream());
    in = new ObjectInputStream(
    new BufferedInputStream(socket.getInputStream()));
    out.writeObject(clientname);
    out.flush();
}
public void run() throws ClassNotFoundException{
    try{
        while(true){
            RobotAction action = (RobotAction) in.readObject();
            Object result = action.execute(robot);
            if(result !=null)
            {
                out.writeObject(result);
                out.flush();
                out.reset();

            }
        }
    }
    catch(IOException ex){
        System.out.println("Connection closed");

      }
  }
    public static void main(String[] args) throws Exception{
    Client client = new Client(args[0], args[1]);
    client.run();

   }

}

错误: 线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:1     在com.server.Client.main(Client.java:47)`

1 个答案:

答案 0 :(得分:2)

运行程序时,需要传递(至少)2个参数。 你的问题是这个args[1]不存在,那是因为你只在运行你的程序时才传递1个参数。因此,您正在访问元素args[1],但args数组仅包含1个元素(args[0]),而不包含2个元素(args[0]args[1])。