Come utilizzare un carattere jolly nel percorso di classe per aggiungere più barattoli? [duplicare]

StackOverflow https://stackoverflow.com/questions/1237093

  •  11-09-2019
  •  | 
  •  

Domanda

    

Questa domanda ha già una risposta qui:

         

Sono stato con tante librerie 3a parte (file JAR) che il mio CLASSPATH è completamente incasinato come devo includere il percorso per ogni file jar singola che uso.

Mi chiedevo se esiste un modo per includere tutti i file jar in una cartella utilizzando jolly (*) dell'operatore (come * .jar). Ma sembra essere non funzionante. C'è un altro modo che può accorciare il CLASSPATH che attualmente si presenta come un saggio;?.) Sul mio PC

È stato utile?

Soluzione

Da: http: //java.sun. com / JavaSE / 6 / docs / note tecniche / strumenti / windows / classpath.html

  

voci del percorso di classe possono contenere il carattere jolly * basename, che è considerato equivalente a specificare un elenco di tutti i file nella directory con l'estensione .jar o JAR. Ad esempio, la voce foo/* percorso classe specifica di tutti i file JAR nella directory denominata foo. Una voce di classpath è fatta semplicemente di * espande in una lista di tutti i file jar nella directory corrente.

Questo dovrebbe funzionare in java6, non è sicuro su Java5

(Se sembra che non funziona come previsto, prova a mettere le citazioni ad esempio:. "foo/*")

Altri suggerimenti

Questo funziona su Windows:

java -cp "lib/*" %MAINCLASS%

dove %MAINCLASS%, naturalmente, è la classe che contiene il metodo principale.

In alternativa:

java -cp "lib/*" -jar %MAINJAR%

dove %MAINJAR% è il file jar per lanciare attraverso il suo manifesto interno.

basename wild card sono state introdotte in Java 6; vale a dire "pippo / *" indica tutti i file ".jar" nella directory "pippo".

Nelle versioni precedenti di Java che non supportano percorsi di classe jolly, ho fatto ricorso all'utilizzo di uno script di shell wrapper per assemblare un percorso di classe da 'globbing' un modello e pressare i risultati da inserire ':' caratteri nei punti appropriati. Questo sarebbe difficile da fare in un file BAT ...

Se vuoi dire che si dispone di un ambiente variabile denominata CLASSPATH, direi che è il tuo errore. Non ho una cosa del genere su qualsiasi macchina con la quale io sviluppo Java. CLASSPATH è così legato a un progetto particolare che è impossibile avere un unico, corretta CLASSPATH che funziona per tutti.

I set CLASSPATH per ogni progetto utilizzando un IDE o Ant. Faccio un sacco di sviluppo web, in modo che ogni WAR e EAR usa il loro proprio CLASSPATH.

E 'ignorato da IDE e server app. Perché lo avete? Mi consiglia di eliminarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top