Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Codice scritto dal prof dà errori

    Ciao,

    volevo testare il codice scritto dal mio professore, ma...

    F:\codice\file1>javac *.java
    Note: File1.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.

    Mi compila i file ma, sia che lo eseguo così che se lo ricompilo con -Xlint:unchecked come inviato dal calcolatore ottengo:

    F:\codice\file1>java File1
    Exception in thread "main" java.lang.NoClassDefFoundError: File1 (wrong name:
    file1\File1)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknow n Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unkno wn Source)

    Come mai? Versioni di java differenti tra il pc del professore e quello dell'aula informatica? Ho modo di risolverlo?

    Grazie!

  2. #2
    allora il fatto che nella compilazione ti dia quel messaggio e l'errore quando tenti di eseguirlo sono fatti completemente slegati tra di loro...

    Sicuramente dovrai settare il classpath....

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Codice scritto dal prof dà errori

    Originariamente inviato da alemagno
    Ciao,
    Mi compila i file ma, sia che lo eseguo così che se lo ricompilo con -Xlint:unchecked come inviato dal calcolatore ottengo:
    Calma... La ricompilazione con il flag -Xlint:unchecked non cambia il risultato, semplicemente compila mostrandoti ANCHE i warning (collezioni con tipi generici non dichiarati ad esempio...).

    Originariamente inviato da alemagno
    F:\codice\file1>java File1
    Exception in thread "main" java.lang.NoClassDefFoundError: File1 (wrong name:
    file1\File1)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknow n Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unkno wn Source)

    Come mai? Versioni di java differenti tra il pc del professore e quello dell'aula informatica? Ho modo di risolverlo?

    Grazie!
    Nella classe File1 è indicato un package?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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

    Re: Re: Codice scritto dal prof dà errori

    Originariamente inviato da Alex'87
    Nella classe File1 è indicato un package?
    Rispondo io: sicuramente sì e si chiama "file1".

    Quindi, per eseguire quel programma, bisogna spostarsi fuori dalla directory dei compilati (che deve chiamarsi "file1" e non in altro modo) e digitare il comando:

    codice:
    java file1.File1
    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 L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: Re: Codice scritto dal prof dà errori

    Originariamente inviato da LeleFT
    Rispondo io: sicuramente sì e si chiama "file1".

    Quindi, per eseguire quel programma, bisogna spostarsi fuori dalla directory dei compilati (che deve chiamarsi "file1" e non in altro modo) e digitare il comando:

    codice:
    java file1.File1
    Ciao.
    Era dove volevo arrivare, mi hai tolto tutto il divertimento

    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

    Re: Re: Re: Codice scritto dal prof dà errori

    Originariamente inviato da LeleFT
    Rispondo io: sicuramente sì e si chiama "file1".

    Quindi, per eseguire quel programma, bisogna spostarsi fuori dalla directory dei compilati (che deve chiamarsi "file1" e non in altro modo) e digitare il comando:

    codice:
    java file1.File1
    Ciao.
    E' vero, funziona!
    Mi spiegate perchè non posso lanciare il comando java dentro la cartella dove si trova il codice? Non mi sembra d'aver letto nulla a proposito!

    Grazie ancora!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Leggi questo brevissimo tutorial sui Package.

    Una classe può trovarsi in una di queste due situazioni:

    1) Non essere parte di alcun package
    2) Essere parte di un package

    Nel primo caso, la classe si intende parte del "default-package" (è un package senza alcun nome).

    Se la classe è nel secondo caso, allora il suo nome completo è dato dal package più un punto più il nome della classe. La JVM, per avviare una classe, deve conoscerne il nome completo, quindi è necessario specificarlo sempre tutto per esteso quando si dà il comando java.

    Ovviamente, la JVM ricercherà la classe all'interno di una struttura di directory esattamente uguale al nome del package che le è stato specificato, dove al posto del punto viene sostituito il separatore di directory. Ergo, se la classe Pippo sta dentro ad un package chiamato it.topolinia.qualcosa allora il suo nome completo (fully-qualified) è "it.topolinia.qualcosa.Pippo" e nel disco (o nell'eventuale JAR) deve esistere una directory chiamata "it", con dentro una directory chiamata "topolinia" con dentro una directory chiamata "qualcosa" con dentro il file Pippo.class

    Detto questo, affinchè la JVM riesca a trovare il percorso che le viene indicato, è ovvio che bisogna trovarsi fuori da quel percorso (o, meglio, fuori dalla radice di quel percorso, nel nostro caso la directory "it")

    Tralascio volutamente, per il momento, il discorso del CLASSPATH, argomento sul quale ti invito comunque a documentarti.

    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
    Originariamente inviato da LeleFT
    Leggi questo brevissimo tutorial sui Package.

    (cut)

    Ciao.
    Grazie!!!

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.