首页 > 解决方案 > 如何修复错误 java.lang.ArrayIndexOutOfBoundsException?

问题描述

我正在学习使用 Glassfish Server 为客户端和服务器系统编写 Java 网络编程代码。

我已经通过 GS 创建了一个 localhost 服务器。以下是我从 github 复制的代码。

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

public class GreetingClient
{
   public static void main(String [] args)
   {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try
      {
         System.out.println("Connecting to " + serverName +
         " on port " + port);
         Socket client = new Socket(serverName, port);
         System.out.println("Just connected to " 
         + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         out.writeUTF("Hello from "
                      + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in =
                        new DataInputStream(inFromServer);
         System.out.println("Server says " + in.readUTF());
         client.close();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

每次我运行代码时,它都会显示错误

线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:索引 0 超出长度 0 的范围

请问我该如何解决?这真是令人费解……

标签: java

解决方案


您的应用程序需要两个用于服务器名和端口的命令行参数。

   String serverName = args[0];
   int port = Integer.parseInt(args[1]);

例如,如果 GlassFish 服务器在您的本地主机上的 8080 端口上运行,您将使用以下参数运行您的客户端应用程序

   java GreetingClient localhost 8080

推荐阅读