2010-11-03 16 views
7

estoy tratando de compilar este:Error del compilador de Java: "tipo público ... debe definirse en su propio archivo"?

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]); 
     } 
    } 
} 

Solía ​​dns.java javac, pero me estoy haciendo un lío de errores:

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) 

nunca he compilado/Java hecho antes. Solo necesito esto para probar los resultados de otros programas. ¿Algunas ideas? Estoy compilando en una máquina Linux.

+1

4 no es un "desastre" de errores. 400 puede ser, pero no 4. Y por favor intente mantener las preguntas tan autónomas como sea posible, no queremos estar persiguiendo por Internet, buscando su código, al intentar ayudarlo :-) – paxdiablo

+1

¡Lo siento! Todavía tengo que averiguar cómo formatear en SO, ¡gracias por la edición! –

+1

Para referencia futura, 4 espacios antes de una línea lo formatearán como tal, y puede usar los trazos para hacer el mismo formato en línea. [Este enlace] (http://stackoverflow.com/editing-help) lo explica bastante bien. –

Respuesta

15

El archivo debe ser llamado DNSLookUp.java y hay que poner:

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

En la parte superior del archivo

+1

+1 para señalar el nombre de la clase. –

+0

Gracias! Eso tiene mucho más sentido ~ –

0

Es necesario importar las clases que se está usando. por ejemplo:

import java.net. *;

Para importar todas las clases desde el paquete java.net.

Tampoco puede tener una clase pública DNSLookUp en un archivo llamado dns.java. Parece que es hora de un tutorial de Java ...

4

Cambie el nombre del archivo como DNSLookUp.java e importe las clases apropiadas.

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]); 
     } 
    } 
} 
4

Las respuestas dadas aquí son todos buenos, pero dada la naturaleza de estos errores y en el espíritu de 'enseñar a un hombre a pescar, etc, etc':

  1. Instalar IDE de elección (NetBeans es una tarea fácil para empezar)
  2. Configuración de su código como un nuevo proyecto
  3. Haga clic en la bombilla en la línea donde se produce el error
  4. Seleccione la solución que le gustaría
  5. Maravíllate con la potencia de las herramientas que tienes disponibles
+0

IntelliJ tiene una edición de comunidad. http://www.jetbrains.com/idea/free_java_ide.html – Jayan

+1

@Jayan - Sí, tenemos muchas opciones cuando se trata de IDEs ricos. Solo tengo experiencia con Netbeans y Eclipse, y, si bien ambos son fantásticos, creo que Netbeans tendría una curva de aprendizaje más superficial para los nuevos en el lenguaje. – CurtainDog

+0

+1 para Netbeans. Me gusta IntelliJ pero el comercial. Muchas cosas importantes no están ahí en la edición de la comunidad. –

Cuestiones relacionadas