/ * *要更改此许可证标题,请在“项目属性”中选择“许可证标题”。 *要更改此模板文件,请选择“工具”|模板 *并在编辑器中打开模板。 * / 包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)`
答案 0 :(得分:2)
运行程序时,需要传递(至少)2个参数。
你的问题是这个args[1]
不存在,那是因为你只在运行你的程序时才传递1个参数。因此,您正在访问元素args[1]
,但args
数组仅包含1个元素(args[0]
),而不包含2个元素(args[0]
和args[1]
)。