Ошибка компилятора Java: «открытый тип .. должен быть определен в своем собственном файле»? - PullRequest
7 голосов
/ 03 ноября 2010

Я пытаюсь скомпилировать это:

public class DNSLookUp {
    public static void main(String[] args)   {
        InetAddress hostAddress;
        try  {
            hostAddress = InetAddress.getByName(args[0]);
            System.out.println (hostAddress.getHostAddress());
        }
        catch (UnknownHostException uhe)  {
            System.err.println("Unknown host: " + args[0]);
        }
    }
}

Я использовал javac dns.java, но я получаю беспорядок ошибок:

dns.java:1: error: The public type DNSLookUp must be defined in its own file
    public class DNSLookUp {
                 ^^^^^^^^^
dns.java:3: error: InetAddress cannot be resolved to a type
    InetAddress hostAddress;
    ^^^^^^^^^^^
dns.java:6: error: InetAddress cannot be resolved
    hostAddress = InetAddress.getByName(args[0]);
                  ^^^^^^^^^^^
dns.java:9: error: UnknownHostException cannot be resolved to a type
    catch (UnknownHostException uhe)  {
           ^^^^^^^^^^^^^^^^^^^^
4 problems (4 errors)

Я никогда раньше не компилировал / не делал Java. Это нужно только для проверки результатов других моих программ. Есть идеи? Я собираю на машине Linux.

Ответы [ 4 ]

15 голосов
/ 03 ноября 2010

Файл должен называться DNSLookUp.java, и вам нужно поставить:

import java.net.InetAddress;
import java.net.UnknownHostException;    

Вверху файла

4 голосов
/ 03 ноября 2010

Все ответы, приведенные здесь, хороши, но с учетом характера этих ошибок и в духе «научить человека ловить рыбу, и т. Д. И т. Д.»:

  1. Установите IDE по своему выбору (Netbeansлегко начать с)
  2. Настройте свой код как новый проект
  3. Нажмите на лампочку в строке, где возникает ошибка
  4. Выберите исправление, которое вы хотите
  5. Удивитесь силе имеющихся у вас инструментов
4 голосов
/ 03 ноября 2010

Переименуйте файл в DNSLookUp.java и импортируйте соответствующие классы.

import java.net.InetAddress;
import java.net.UnknownHostException;

public class DNSLookUp {

    public static void main(String[] args) {
        InetAddress hostAddress;
        try {
            hostAddress = InetAddress.getByName(args[0]);
            System.out.println(hostAddress.getHostAddress());
        } catch (UnknownHostException uhe) {
            System.err.println("Unknown host: " + args[0]);
        }
    }
}
0 голосов
/ 03 ноября 2010

Вам необходимо импортировать используемые вами классы.Например:

import java.net. *;

Чтобы импортировать все классы из пакета java.net.

Вы также не можете иметь открытый класс DNSLookUp вфайл с именем dns.java.Похоже, пришло время для учебника по Java ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...