Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    6

    Problemi da Neofita "Impossibile trovare o caricare la classe principale"

    Ciao ragazzi,
    mi sto avvicinando al mondo Java da qualche settimana e come tutti sto iniziando con qualche piccolo programmino, solo che oggi sto avendo un piccolo problema, cosa che ieri non accadeva.

    Nella giornata di ieri ho installato la jdk, ho modificato le variabili d'ambiente (path e classpath), ho compilato la classe e l'ho mandata in esecuzione senza alcun tipo di problema.

    Oggi..sorpresa!!! anche quelle classi che avevo già creato ieri e che non ho minimamente modificato, non ne vogliono sapere di funzionare, mi compare la fatidica scritta "Impossibile trovare o caricare la classe principale"

    Sono alle prime armi quindi non so davvero dove mettermi le mani, ogni consiglio è ben gradito

    Grazie a tutti

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Primo consiglio: rimuovi la variabile d'ambiente CLASSPATH.

    Secondo consiglio: posta il codice della classe e i comandi che usi per:

    1) compilarla
    2) eseguirla

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    6
    Scusa la mia ignoranza, cosa intendi per codice della classe?

    Comunque per compilarla, una volta creato il listato sul notepad, la compilo con "javac esempio.java", mentre per eseguirla "java esempio"
    In fase di compilazione non mi da alcun tipo di errore, mentre il problema si verifica non appena la eseguo..

    Illuminami

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Originariamente inviato da Morgen
    Scusa la mia ignoranza, cosa intendi per codice della classe?
    Quello che tu chiami "listato"... in termine tecnico si chiama "codice" (abbreviazione di "codice sorgente").

    PS: quando lo posterai, mettilo all'interno degli appositi tag CODE previsti dal forum:

    [CODE]
    incolli il tuo listato
    [/CODE]


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    6
    Ah ok..grazie per la delucidazione, comunque ti riporto il mio codice classe:

    codice:
    import java.util.Scanner;
    
    public class PrimoProgramma {
    
    	public static void main (String[] args) {
    
    		System.out.println("Ciao!");
    		System.out.println("Eseguo la somma di due numeri.");
    		System.out.println("Digita entrambi i numeri nella stessa riga:");
    	
    		int n1, n2;
    
    		Scanner tastiera = new Scanner(System.in);
    	
    		n1 = tastiera.nextInt();
    		n2 = tastiera.nextInt();
    
    		System.out.println("Ecco la somma dei due numeri");
    		System.out.println(n1 + n2);
    	}
    }
    Quello che non mi spiego è che ieri funzionava tutto a meraviglia..può essere che mi manca qualche passaggio basilare che magari ieri ho fatto inconsapevolmente e oggi non mi viene in mente, cioè una volta modificato il path sulle variabili d'ambiente, dovrei essere pronto giusto?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Originariamente inviato da Morgen
    Ah ok..grazie per la delucidazione, comunque ti riporto il mio codice classe:

    [...]

    Quello che non mi spiego è che ieri funzionava tutto a meraviglia..può essere che mi manca qualche passaggio basilare che magari ieri ho fatto inconsapevolmente e oggi non mi viene in mente, cioè una volta modificato il path sulle variabili d'ambiente, dovrei essere pronto giusto?
    (i tag code li ho aggiunti io).

    La variabile d'ambiente PATH andrebbe impostata a livello di sistema, così da non doversene preoccupare mai più dopo averla impostata (è una questione sistemistica, ti rimando a verificare in base al tuo sistema operativo i passaggi da compiere o di postare nell'area apposita per avere suggerimenti in merito: Windows e Software, Mac e Software o Linux e Software).

    Le cose da tenere a mente sono:

    1) La variabile CLASSPATH. Se non c'è è meglio perchè ti risparmia tanti problemi, all'inizio.
    2) La posizione in cui esegui la classe. Non hai indicazioni di package quindi devi assicurarti di essere nella directory dove c'è il file PrimoProgramma.class e da lì avviarlo.
    3) Ricordarsi di non invocare il nome del file, ma il nome della classe (quindi, senza il .class).

    Nel tuo caso:

    codice:
    javac PrimoEsempio.java
    java PrimoEsempio
    e dovrebbe andare.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    6
    grazie per aver aggiunto i tag code, lo terrò a mente per le prossime volte..

    Per quanto riguarda la variabile d'ambiente, l'ho già impostata a livello di sistema (computer>proprietà>impostazioni di sistema avanzate>variabili d'ambiente).

    1-La CLASSPATH almeno per il momento la tengo in disparte.
    2-Sono sicuro di trovarmi nella cartella dove si trova il file, mi muovo tramite il classico "d NomeCartella" fino a raggiungere la directory corretta.
    3- Come già accennato poco fa, per eseguire il programma uso java NomeProgramma omettendo il .class

    Ieri funzionava tutto alla perfezione..ma oggi non ne vuol sapere, sono disperato

    Grazie comunque di tutto sei stato gentilissimo, proverò a sbattere qualche altro centinaio di volte la testa sul muro, vediamo se cambia qualcosa XD

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Mi pare di capire che in compilazione non ottieni alcun errore. Puoi riportare esattamente il messaggio d'errore che ottieni in esecuzione? Perchè dalla descrizione che hai riportato tu (in Italiano) non è molto chiaro: i messaggi originali (sempre e solo in inglese) sono più chiari; se è come penso potrebbe essere un errore a livello di installazione della JVM (a me è successo alcune volte con gli aggiornamenti automatici).

    Poi, dovresti riportare esattamente cosa ottieni digitando i seguenti comandi:

    codice:
    javac -version
    java -version
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    6
    Il messaggio che mi appare in esecuzione è il seguente:
    "Errore: impossibile trovare o caricare la classe principale PrimoProgramma"

    Digitando javac -version ottengo ciò:
    javac 1.7.0_05

    digitando java -version ottengo:
    java version "1.7.0_05"
    java (TM) SE Runtime Environment (build 1.7.0_05-b06)
    java HotSpot(TM) 64-bit Server VM (build 23.1-b03, mixed mode)

    Questo è quanto..

    Ciaooo

  10. #10
    Domanda stupida ma all'interno di quella cartella essiste il file .class....
    Prova a lanciare java -cp . NomeProgramma (in modo da settare il classpath sulla cartella corrente)

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.