Visualizzazione dei risultati da 1 a 5 su 5

Discussione: CLASSPATH e sourcepath

  1. #1
    Utente di HTML.it L'avatar di dany80
    Registrato dal
    Feb 2008
    Messaggi
    119

    CLASSPATH e sourcepath

    mi chiarite nel javadoc cosa fanno? ho dei forti bubbi!!
    Dany80

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: CLASSPATH e sourcepath

    Originariamente inviato da dany80
    mi chiarite nel javadoc cosa fanno? ho dei forti bubbi!!
    Il "classpath" in senso generale è un elenco di directory e file .jar/.zip che la JVM usa per trovare le classi.
    Il sourcepath è più particolare, vale ovviamente solo per i tools javac/javadoc che devono cercare "sorgenti". E anche qui è in generale una lista di directory e file .jar/.zip in cui trovare sorgenti .java.

    Specificare un sourcepath è meno tipico. Se non si specifica, viene usato il classpath anche per cercare i sorgenti. (dalla documentazione: If the -sourcepath option is not specified, the user class path is also searched for source files.)

    In ogni caso vale la stessa regola, che te l'ho già detta e ormai dovrebbe uscirti dalle orecchie : i nomi di package si devono "riflettere" nei nomi e nella struttura delle cartelle.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di dany80
    Registrato dal
    Feb 2008
    Messaggi
    119

    Re:

    allora per quello che ho capito da solo...
    -la classpath utilizzata dal javac (javac -classpath cartellaMain)serve per far impostare la classpath del progetto compilato nella cartella principale(cartellaMain) del progetto a prescindere dalla variabile CLASSPATH.
    -la sourcepath serve in fase di compilazione ( javac -sourcepath mycartella) per cercare i file (.java) da compilare nella directory specificata(mycartella contenente i file .class)
    -d directory serve per specificare dove andare a inserire i file file compilati(.class)

    Ti spiego io vorrei realizzare un progetto in cui ci siamo tre cartelle

    cartellaPrincipaleProgetto

    contiene:
    • -
    • filePuntoClass
      -
    • filePuntoJava

      filePuntoJava contiene:
      ------
    • fileMain
      ------
    • Altrifile
    all'interno della cartella "filePuntoClass" ci sono tutti i miei file .class
    nella cartella "FilePuntoJava" ci sono tutti i file compilati distribuiti secondo i package: main.class all'interno di "fileMain" e i file altri.class utilizzati da main.class contenuti in "AltriFile"
    ora in fa di compilazione dovrei lanciare:
    codice:
    c:> javac -sourcepath filePuntoClass - classpath .;filePuntoJava\FileMain; 
    filePuntoJava\AltriFile main.java altrifile.java -d filepuntomain
    premettendo che i package filePuntoJava ed i suoi sottoPackage si creino in fase di compilazione perchè all'interno delle classi abbia dichiarato le classi in questo modo:

    codice:
    package filePuntoJava.filemain;
    import altriFile.*;
    public class mymain{...}
    ed in altrifile:
    codice:
    package filePuntoJava.altriFile;
    public class altriFile{...}
    ora avendo settato la classpath sul package filePuntoJava.fileMain e filePuntoJava.altriFile
    lanciando il comando java mymain il programma dovrebbe funzionare?!?!

    correggimi le cavolate che ho scritto...ti prego! ma io quello che ho capito è questo. è giusto o no??
    ma in realta mi dà un errore dicendomi che la class main non esiste!!!
    Dany80

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Ulteriore (e spero definitivo) esempio.

    Struttura:

    2 directory (da creare prima di tutto):
    C:\Prove\bin
    C:\Prove\src

    Nota: C:\Prove può essere qualunque altra cosa!! Anche src e bin possono cambiare (es. source e build) a patto di aggiornare i comandi sotto.

    2 file sorgenti:
    C:\Prove\src\org\esempio\Principale.java
    C:\Prove\src\org\test\AltraClasse.java

    In rosso le cartelle che "riflettono" i package.

    Principale.java
    codice:
    package org.esempio;
    
    import org.test.AltraClasse;
    
    public class Principale {
        public static void main(String[] args) {
            AltraClasse ac = new AltraClasse();
            ac.test();
        }
    }
    AltraClasse.java
    codice:
    package org.test;
    
    public class AltraClasse {
        public void test() {
            System.out.println("Funziona!");
        }
    }
    Stando come directory "corrente" in C:\Prove (quindi comando: CD C:\Prove)

    javac -d bin -sourcepath src -classpath bin src\org\esempio\Principale.java

    La compilazione crea sotto la "bin" una struttura simile (package che si riflettono nelle cartelle) ma che contiene i file .class

    java -classpath bin org.esempio.Principale
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di dany80
    Registrato dal
    Feb 2008
    Messaggi
    119
    Grazie per l'aiuto, ho capito l'errore...era un errore di case sensitive in esecuzione....GRAZIE MILLE...forse vi rompero di nuovo...ma capitemi sono alle prime armi!! e ho voglia di imparare
    Dany80

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.