Classpath (Italiano)


Fornendo come applicazione argumentEdit

Supponiamo di avere un pacchetto chiamato org.mypackage contenente le classi:

  • HelloWorld (main class)
  • SupportClass
  • UtilClass

e i file che definiscono questo pacchetto sono memorizzati fisicamente nella directory D:\myprogram (su Windows) o / home / user / myprogram (su Linux).

La struttura del file si presenta così:

Quando invochiamo Java, specifichiamo il nome dell’applicazione da eseguire: org.il mio pacchetto.HelloWorld., Tuttavia dobbiamo anche dire a Java dove cercare i file e le directory che definiscono il nostro pacchetto.,o per lanciare il programma, utilizzare il seguente comando:

Microsoft Windows Linux
 java -classpath D:\myprogram org.mypackage.HelloWorld
 java -cp /home/user/myprogram org.mypackage.HelloWorld 

dove:

  • java è il Java runtime launcher, un tipo di SDK Tool (strumento da riga di comando, come javac, javadoc, o apt)
  • -classpath D:\myprogram imposta il percorso per i pacchetti utilizzati nel programma (su Linux, -cp /home/utente/programma) e
  • org.,il mio pacchetto.HelloWorld è il nome della classe principale

Che imposta il percorso attraverso un ambiente variableEdit

La variabile di ambiente denominata CLASSPATH può essere usata in alternativa per impostare il classpath. Per l’esempio precedente, potremmo anche usare su Windows:

set CLASSPATH=D:\myprogramjava org.mypackage.HelloWorld

La regola è che l’opzione -classpath, quando viene utilizzata per avviare l’applicazione java, sovrascrive la variabile di ambiente CLASSPATH. Se non vengono specificati, la directory di lavoro corrente viene utilizzata come classpath., Ciò significa che quando la nostra directory di lavoro è D:\myprogram\(su Linux, /home/user/myprogram/), non avremmo bisogno di specificare esplicitamente il classpath. Quando si esegue l’override, tuttavia, si consiglia di includere la cartella corrente "." nel classpath nel caso in cui si desideri caricare le classi dalla cartella corrente.

Lo stesso vale non solo per java launcher ma anche per javac, il compilatore java.

Impostazione del percorso di un file Jaredit

Se un programma utilizza una libreria di supporto racchiusa in un file Jar chiamato supportLib.,jar, fisicamente si trova nella directory D:\myprogram\lib\ e il fisico corrispondente struttura del file è:

D:\myprogram\ | ---> lib\ | ---> supportLib.jar | ---> org\ | --> mypackage\ | ---> HelloWorld.class ---> SupportClass.class ---> UtilClass.class

la seguente riga di comando opzione è necessaria:

java -classpath D:\myprogram;D:\myprogram\lib\supportLib.jar org.mypackage.HelloWorld

o, in alternativa:

set CLASSPATH=D:\myprogram;D:\myprogram\lib\supportLib.jarjava org.mypackage.HelloWorld

l’Aggiunta di tutti i file JAR in un directoryEdit

In Java 6 e superiore, con la possibilità di aggiungere tutti i jar file in una directory specifica per il classpath utilizzando il carattere jolly di notazione.,

Esempio Windows:

java -classpath ".;c:\mylib\*" MyApp

Esempio Linux:

java -classpath '.:/mylib/*' MyApp

Funziona sia per le opzioni-classpath che per i percorsi di classe dell’ambiente.

Impostazione del percorso in un file manifestedit

Se un programma è stato racchiuso in un file Jar chiamato HelloWorld.jar, che si trova direttamente nella directory D:\myprogram, la struttura di directory è la seguente:

D:\myprogram\ | ---> helloWorld.jar | ---> lib\ | ---> supportLib.jar

Il file manifest definito in HelloWorld.,jar ha questa definizione:

Main-Class: org.mypackage.HelloWorldClass-Path: lib/supportLib.jar

Il file manifest dovrebbe terminare con una nuova riga o con ritorno a capo.

Il programma viene avviato con il seguente comando:

java -jar D:\myprogram\helloWorld.jar 

Questo avvia automaticamente org.il mio pacchetto.HelloWorld specificato nella classe Main-Class con gli argomenti. L’utente non può sostituire questo nome di classe utilizzando l’invocazionejava-jar . Class-Path descrive la posizione di supportLib.jar relativo alla posizione della libreria HelloWorld.vaso., Non sono supportati né il percorso assoluto del file, che è consentito nel parametro -classpath sulla riga di comando, né i percorsi interni jar. Ciò significa che se il file di classe principale è contenuto in un jar, org/mypackage/HelloWorld.la classe deve essere un percorso valido sulla radice all’interno del jar.

Più voci classpath sono separate da spazi:

Class-Path: lib/supportLib.jar lib/supportLib2.jar

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *