Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    11

    Problema compilazione javac

    Ho un problema apparentemente facile ma che non riesco a risolvere.
    Ho installato JDK 7, ho poi creato un semplicissimo programma che sotto riporto:
    codice:
    public class first program 
    {
        public static void main (String args[]) 
        {
            System.out.println("first program");
        }
    }
    Ho modificato la variabile PATH aggiungendo il percorso C:\....\JDK\bin.
    Ho inserito il comando javac dal prompt del DOS, mettendomi dentro la cartella in cui avevo salvato il file "first program.java", ma non funziona; mi da il seguente errore:

    "Errore: impossibile trovare o caricare la classe principale com.sun.tools.javac.Main"
    Qualcuno mi può aiutare?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Hai chiamato davvero una classe "firstSPAZIOprogram"?

    I nomi delle classi non devono avere spazi (e possibilimente il nome deve essere in Camel Case con l'iniziale maiscuola, es: FirstProgram). Il file dovrà quindi chiamarsi FirstProgram.java.

    ps: il codice va postato INDENTATO e con il tag CODE

    codice:
    public class FirstProgram
    {
        public static void main (String[] args)
        {
            System.out.println("first program");
        }
    }
    Prova a vedere se ora funziona.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3

    Moderazione

    Benvenuto sul forum! Ti ricordo che:
    • le discussioni relative a Java non sono trattate qui, ma nell'apposita sottosezione;
    • il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione.


    Ora correggo io e provvedo a spostare il thread, in futuro imposta correttamente la discussione fin da subito; nel frattempo ti consiglio di dare un'occhiata al regolamento.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    11
    Scusate la mia inesperienza con il forum e grazie di aver corretto il mo sbaglio (ho letto il regolamento ma non vedo indicazoni in merito, che significa "il codice va postato INDENTATO e con il tag CODE.....vorrei poter sistemare questa per utilizzare bene il forum)
    Comunque non funziona lo stesso anche correggendo il nome della classe, però:
    - è corretto mettere le doppie parentesi quadre dopo String?...nei vari testi che ho letto le mettono dopo args;
    - usando il blocco note il file non lo salva con le maiuscole FirstProgram, mentre con il EJE si, però mi da sempre lo stesso errore che ho indicato nel primo messaggio.

    Grazie per la pazienza.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Fede2
    Comunque non funziona lo stesso anche correggendo il nome della classe, però:
    - è corretto mettere le doppie parentesi quadre dopo String?...nei vari testi che ho letto le mettono dopo args;
    E' indifferente, String[] pippo e String pippo[] sono la stessa cosa.

    Per una questione di chiarezza è meglio (a mio parere) indicare le parentesi appena dopo il tipo e non dopo la variabile:

    codice:
    int pippo;   -> intero
    int[] pippi; -> array di interi
    Originariamente inviato da Fede2
    - usando il blocco note il file non lo salva con le maiuscole FirstProgram, mentre con il EJE si, però mi da sempre lo stesso errore che ho indicato nel primo messaggio.
    Come editor usa Notepad++.
    Se da terminale lanci javac (e basta) cosa succede?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    11
    Ho scaricato notepad++, ho copiato il programma gia compliato e dal prompt del dos l'ho lanciato con javac ma niente da sempre lo stesso errore "Errore: impossibile trovare o caricare la classe principale com.sun.tools.javac.Main".
    Mi da lo stesso errore anche digitando solo javac.
    Avrò installato male JDK??

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Fede2
    Avrò installato male JDK??
    A questo punto mi sa di sì.. Hai giocato con qualche variabile d'ambiente (PATH a parte?)

    (comunque NotePad++ non te l'ho consigliato per risolvere il tuo problema: l'editor non conta un tubo da questo punto di vista, te l'ho consigliato perché è decisamente più comodo per scrivere codice rispetto al blocco note base)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    11
    Ho rinstallato JDK e adesso funziona!!!
    Grazie Alex'87 per l'aiuto.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    11
    Ciao,
    penso di essermi perso in alcuni argomenti di java che secondo alcuni non hanno niente di complicato, ad esempio che differenza concettuale c'è tra i due codici sotto riportati:

    public class Reference {
    public void cambiaReference(Data data) {
    data = new Data();
    data.giorno = 26;
    data.mese = 8;
    data.anno = 1974;
    }
    }

    e

    public class Reference {
    public void cambiaReference(Data data) {
    data.giorno = 26;
    data.mese = 8;
    data.anno = 1974;
    }
    }

    Nel primo c'è l'istanza, nel secondo no.
    Entrambi non danno errori, però io sapevo che i puntatori (oggetti) potevano essere utilizzati dopo essere stati istanziati con il new, invece vedo che nel secondo codice, anche senza istanza, il puntatore "data" riesce a cambiare i valori delle variabili giorno, mese e anno.
    Le variabili suddette erano state create con il seguente codice:

    public class Data {
    public int giorno;
    public int mese;
    public int anno;
    }

    Grazie

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Usa il tag CODE per postare il codice o diventa illeggibile.
    Nuova domanda->Nuova discussione
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.