Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: File eseguibile Java

  1. #1

    File eseguibile Java

    Ciao a tutti! Ho creato un banalissimo programma java funzionante senza nessun errore. Col prompt dei comandi compilo il programma facendo c:...\jdk...\bin\javac Nomefile.java
    Il file viene compilato. Quando però vado a eseguire il programma facendo c:...\jdk...\bin\java Nomefile mi viene fuori il seguente messaggio d'errore: Exception in thread "main" java.lang.NoClassDefFoundError: Nomefile
    Caused by: java.lang.ClassNotFoundException: Nomefile
    at java.net.URLClassLoader$1.run(URLClassLoader.java: 202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.j ava:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:3 07)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:2 48)
    Could not find the main class: Nomefile. Program will exit.

    Cosa posso fare affinchè il programma possa funzionare?? Uno mi ha detto che dovrei togliere le parentesi graffe che chiudono il main e la classe però mi da problemi su problemi. Vi prego aiutatemi. Grazie

    EmaEma94.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: File eseguibile Java

    Originariamente inviato da EmaEma94.
    Cosa posso fare affinchè il programma possa funzionare?? Uno mi ha detto che dovrei togliere le parentesi graffe che chiudono il main e la classe però mi da problemi su problemi. Vi prego aiutatemi. Grazie

    EmaEma94.
    Quell'Uno evidentemente non sa nemmeno di cosa stia parlando.
    Ad ogni modo, se non posti il sorgente della classe non sapremo mai se il problema riguarda il classpath, la dichiarazione di package o altro.

    PS: leggi anche il Regolamento interno, prima di postare il codice... soprattutto il punto 6.


    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
    Lo posto sempre in questa discussione??

  4. #4
    Scusate ecco il file sorgente:

    codice:
    package p_azzeccanumero;
    import java.io.InputStreamReader;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.util.Random;
    
    public class AzzeccaNumero {
       public static void main(String[] args) throws IOException {
          //Dichiarazione Variabili
          int num;
          int numScelta;
          int conta;
    
          //Preparazione Tastiera
          InputStreamReader ingresso = new InputStreamReader(System.in);
          BufferedReader tastiera = new BufferedReader(ingresso);
    
          //Preparazione Random
          Random casuale = new Random();
    
          //Istruzioni
          System.out.println("Azzecca il numero...");
          num = casuale.nextInt(100) + 1;
          conta = 0;
          do {
             do {
                System.out.println("Inserisci il numero");
                numScelta = Integer.parseInt(tastiera.readLine().trim());
                conta++;
             } while (numScelta <= 0 || numScelta > 100);
             if (num == numScelta) {
                System.out.println("Hai azzeccato il numero");
                System.out.println("Hai impiegato " + conta + " tentativi");
             } else {
                if (num < numScelta) {
                   System.out.println("Hai sbagliato, hai scelto un numero" + " troppo grande!");
                } else {
                   System.out.println("Hai sbagliato, hai scelto un numero " + "troppo piccolo");
                }
             }
          } while (num != numScelta);
       }//fine main
    }//fine class

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Anche se non lo hai incollato come si deve (suggerisco di usare l'esempio del punto 6 e non il pulsante CODE, comunque ho sistemato io), si capisce perfettamente che fai uso della direttiva package (la prima riga del file).

    Se fai uso di quella direttiva, per poter avviare l'applicazione devi usare il nome completo della classe. Quindi, devi avere una directory con lo stesso identico nome della direttiva package (nel tuo caso "p_azzeccanumero", con dentro il file .class della tua classe.

    Per avviarla, devi essere posizionato fuori dalla directory e lanciarla in questo modo:

    codice:
    $ java p_azzeccanumero.AzzeccaNumero

    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

  6. #6
    Ti chiedo scusa lele ma non sono ancora ad alti livelli per avere un linguaggio specifico come dei veri programmatori quindi faccio fatica a capirti, il codice che tu mi hai scritto lo devo scrivere nel prompt dei comandi o nel progetto java?

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da EmaEma94.
    Ti chiedo scusa lele ma non sono ancora ad alti livelli per avere un linguaggio specifico come dei veri programmatori quindi faccio fatica a capirti, il codice che tu mi hai scritto lo devo scrivere nel prompt dei comandi o nel progetto java?
    Nel prompt dei comandi... senza il $ che è il prompt di un terminale Linux...

    devi lanciare il comando java (eventualmente con tutto il percorso, come per il javac che hai postato prima) seguito dal nome completo della classe (ovvero nome_del_package.Nome_Della_Classe).


    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

  8. #8
    Ho messo C:\programmi\java\jdk...\bin java "C:\Users\Public\p_azzeccanumero.AzzeccaNumero " e do l'invio... Mi rifà altri errori dello stesso tipo dicendo però che la classe "C:\Users\Public\p_azzeccanumero.AzzeccaNumero non è stata trovata... So che ti rompo e che sono scemo ma non capisco proprio perchè... cosa sto sbagliando?

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da EmaEma94.
    Ho messo C:\programmi\java\jdk...\bin java "C:\Users\Public\p_azzeccanumero.AzzeccaNumero " e do l'invio... Mi rifà altri errori dello stesso tipo dicendo però che la classe "C:\Users\Public\p_azzeccanumero.AzzeccaNumero non è stata trovata... So che ti rompo e che sono scemo ma non capisco proprio perchè... cosa sto sbagliando?
    Il nome della classe è p_azzeccanumero.AzzeccaNumero e non C:\Users\Public\p_azzeccanumero.AzzeccaNumero
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  10. #10
    Originariamente inviato da Alex'87
    Il nome della classe è p_azzeccanumero.AzzeccaNumero e non C:\Users\Public\p_azzeccanumero.AzzeccaNumero
    Lo so, ho provato mettendo C:\Programmi\Java\JDK\bin\java p_azzeccanumero.AzzeccaNumero mi dava errore lo stesso

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.