2010-11-03 7 views
7

Sto cercando di compilare questo:Errore del compilatore Java: "tipo pubblico .. deve essere definito nel proprio file"?

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

ho usato javac dns.java, ma sto ottenendo un pasticcio di errori:

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) 

ho mai compilato/fatto Java prima. Ho solo bisogno di questo per testare i risultati dei miei altri programmi. Qualche idea? Sto compilando su una macchina Linux.

+1

4 non è un "caos" di errori. 400 può essere, ma non 4. E per favore cercare di mantenere le domande come autosufficiente possibile, non vogliamo essere a caccia di tutti su Internet, alla ricerca di codice, durante il tentativo di dare una mano :-) – paxdiablo

+1

Scusate! Devo ancora capire come formattare su SO, grazie per la modifica! –

+1

Per riferimento futuro, 4 spazi prima che una linea lo formatti come tale, e puoi usare i backtick per fare la stessa formattazione in linea. [Questo link] (http://stackoverflow.com/editing-help) lo spiega abbastanza bene. –

risposta

15

Il file deve essere chiamato DNSLookUp.java ed è necessario mettere:

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

Nella parte superiore del file

+1

+1 per indicare il nome della classe. –

+0

Grazie! Questo ha molto più senso ~ –

0

È necessario importare le classi che si sta utilizzando. es .:

import java.net. *;

Per importare tutte le classi dal pacchetto java.net.

Inoltre, non può avere un dnslookup classe pubblica in un file chiamato dns.java. Sembra che è il momento per un tutorial Java ...

4

Rinominare il file come DNSLookUp.java e importare classi appropriate.

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

Le risposte date qui sono tutti buoni, ma data la natura di questi errori e nello spirito di 'insegnare a un uomo a pescare, ecc, ecc':

  1. Installare IDE di scelta (Netbeans è facile per cominciare)
  2. Imposta il tuo codice come un nuovo progetto
  3. Fare clic sulla lampadina sulla linea in cui l'errore si verifica
  4. Selezionare la correzione che si vorrebbe
  5. Ammirate la potenza degli strumenti disponibili
+0

IntelliJ ha un'edizione comunitaria. http://www.jetbrains.com/idea/free_java_ide.html – Jayan

+1

@ Jayan - Sì, abbiamo solo l'imbarazzo della scelta quando si tratta di IDE ricchi. Ho solo esperienza con Netbeans ed Eclipse e, sebbene entrambi siano fantastici, credo che Netbeans avrebbe una curva di apprendimento meno profonda per chi è nuovo nella lingua. – CurtainDog

+0

+1 per Netbeans. Mi piace IntelliJ ma quello commerciale. Molte delle cose significative non ci sono nell'edizione comunitaria. –

Problemi correlati