Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException: 0 at com.example.main...

2230 단어 IntelliJIDEA
다음 Socket 사례는 온라인 예제에 따라 작성되었으나 실행되지 않습니다(IntelliJ IDEA 2017 도구). 코드는 다음과 같습니다.
package com.example.demo.RUNOOB.NetWorking;
import java.net.*;
import java.io.*;

public class GreetingServer extends Thread {
    private ServerSocket serverSocket;

    public GreetingServer(int port) throws IOException {
        serverSocket = new ServerSocket(port);
        serverSocket.setSoTimeout(10000);
    }

    public void run() {
        while(true) {
            try {
                System.out.println("      ,    :" + serverSocket.getLocalPort() + "...");
                Socket server = serverSocket.accept();
                System.out.println("      :" + server.getRemoteSocketAddress());
                DataInputStream in = new DataInputStream(server.getInputStream());
                System.out.println(in.readUTF());
                DataOutputStream out = new DataOutputStream(server.getOutputStream());
                out.writeUTF("     :" + server.getLocalSocketAddress() + "
Goodbye!"); server.close(); } catch (SocketTimeoutException s) { System.out.println("Socket timed out!"); break; } catch (IOException e) { e.printStackTrace(); break; } } } public static void main(String[] args) { int port = Integer.parseInt(args[0]); try { Thread t = new GreetingServer(port); t.run(); } catch (IOException e) { e.printStackTrace(); } } }

오류 메시지: Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException: 0 at com.example.demo.RUNOOB.NetWorking.GreetingServer.main(GreetingServer.java:38)
자세한 검사 결과 int port = Integer.parseInt(args[0]);,여기에args[0]가 호출되었기 때문에 프로그램이 실행될 때 매개 변수 입력을 제공해야 합니다. 그렇지 않으면 실행 오류가 발생합니다.
해결 방법:
1. IntelliJ IDEA: Edit Configurations 선택...,configuration 옵션 카드에서 Program arguments를 찾아서 값을 입력하십시오. 예를 들어 6066, OK 단추를 누르면 다시 실행하면 오류가 발생하지 않습니다.
2. Eclipse: 클래스를 마우스 오른쪽 버튼으로 클릭하고 Run as -> Run configurations 를 선택한 다음 Arguments 섹션을 선택하고 매개 변수를 입력합니다.

좋은 웹페이지 즐겨찾기