Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    51

    [JAVA] Fuori al package si compila, dentro no.

    Salve a tutti, ho questo problema che non riesco a spiegarmi:

    Nella cartella "classes" di tomcat ho una cartella "dip" nella quale sono presenti due classi ke fanno parte dello stesso package dip, rispettivamente Dipendente e GestDip che estende dipendente.
    La compilazione per Dipendente va a buon fine, quando provo a compilare GestDip invece non mi trova la classe dipendente!

    ecco le due classe:

    Dipendente.java
    codice:
    package dip;
    public class Dipendente 
    { ecc........
    GestDip.java
    codice:
    package dip;
    import java.sql.*;
    import java.util.*;
    
    public class  GestDip extends Dipendente
    { ecc....
    Come ho gia detto la compilazione di Dipendente va a buon fine, mentre quella di GestDip mi da errore:

    GestDip.java:5: cannot find symbol
    symbol: class Dipendente
    public class GestDip extends Dipendente

    Ho controllato il classpath e fatti diversi tentativi... solo che non me lo riesco proprio a spiegare!
    Please help!

    DaN

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

    Moderazione

    Java ha una sezione dedicata in cui postare.

    Inoltre, quando si posta il codice, esso va inserito all'interno dei tag CODE non dei tag QUOTE.


    Correggo e sposto.


    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
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Questo è un problema che, in linea teorica, non si può verificare.

    Se il compilatore riesce a compilare Dipendente deve compilare anche GestDip.

    L'unico mio dubbio è: la compilazione come e da dove la lanci?

    Cioè, per compilare la classe Dipendente (e, conseguentemente, anche GestDip) devi essere posizionato al di fuori della directory "dip" e lanciare il comando in questo modo:

    codice:
    $ javac dip/Dipendente.java
    $ javac dip/GestDip.java
    un altro modo, più sintetico:
    codice:
    $ javac dip/*.java
    Prova prima a cancellare il file Dipendente.class e a rilanciare la compilazione... secondo me il problema è altrove.


    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

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    51
    Io non so piu' che fare!
    Ho sempre usato esitplus, ora tanto per provare l'ho fatto dalla consolle dos direttamente come fai tu, ma l'errore e' sempre lo stesso:

    F:\Programmi\Java\jdk1.6.0_10\bin>javac F:\Programmi\apache-tomcat-6.0.18\webapp
    s\Dipend\WEB-INF\classes\dip\Dipendente.java

    F:\Programmi\Java\jdk1.6.0_10\bin>javac F:\Programmi\apache-tomcat-6.0.18\webapp
    s\Dipend\WEB-INF\classes\dip\GestDip.java



    F:\Programmi\apache-tomcat-6.0.18\webapps\Esercizi\WEB-INF\classes\dip\GestDip.java:4: cannot find symbol
    symbol: class Dipendente
    public class GestDip extends Dipendente


  5. #5
    I file .java vanno in una cartella al di fuori della cartella classes. E' buona norma che una applicazione web abbia la seguente struttura:

    codice:
    Cartella di Tomcat
       |
       |_ webapps
             |
             |_tuaApplicazione
                       |_WEB-INF
                            |_classes    <--- contiene i .class (dopo la compilazione)
                       |_src   <--- contiene i .java suddivisi per package (1 package = 1 cartella)
    Quindi se i tuoi .java stanno sotto src/dip/nomeClasse.java, per compilarli devi portarti nella cartella classes (vuota) e lanciare:

    codice:
    javac –d . ..\..\src\nomepackage\tuaClasse.java
    Oppure

    codice:
    javac –d . ..\..\src\nomepackage\*.java
    Per compilare tutte le classi
    Al mio segnale... scatenate l'inferno!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.