Newsgroup: it.comp.java
Titolo: Tomcat & CLASSPATH

Salve a tutti,
non ho ancora capito bene come funziona il settaggio della variabile
CLASSPATH,mi spiego:
Se io setto il classpath in questo modo
SET CLASSPATH=.;c:\program files\apache tomcat 4.0\common\lib
Il sistema dovrebbe vedere tutti i jar e le classi contenute in questa
cartella?
...e xche' se provo a compilare 1 servlet non trova il pacchetto
'servlet.jar' ????
Se invece setto la var. classpath in questo modo funziona perfettamente:
SET CLASSPATH=.;c:\program files\apache tomcat
4.0\common\lib\servlet.jar.
Allora mi chiedo se ho 100 files .jar li dovrei specificare tutti nella
variabile CLASSPATH???
Grazie a tutti
Carmine
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Proprio cosě!
Se ti sembra strano, pensa che jar in fondo non č altro che una 
cartella, solo che č compressa.
Ciao.
\mirko

 variabile CLASSPATH???
sì nel class path vanno specificati uno per uno tutti i JAR e tutte le 
directory. Infatti possiamo vedere un file JAR come ad una directory 
"compressa".
Nello sviluppo di una applicazione web tuttavia è possibile mettere i 
file JAR necessari all'applicazione nella directory WEB-INF/lib . In 
questo caso in fase di avvio dell'applicazione il class path verrà 
aggiornato automaticamente in modo da contenere tutti i file JAR della 
directory lib.
Gaetano Bigliardi

 wrote in message
news:170f04d4c716618a6d3...@mygate.mailgate.org


 \webapps\examples\web-inf\ di Tomcat ma con scarsi risultati.
Prova a guardarci un po'. Ti assicuro che funziona benissimo. Non ti so 
indicare la strada più di tanto perché non ho utilizzato Tomcat ma un 
altro servlet container.
Metti che la tua applicazione si chiami app1. Allora all'interno della 
directory app1, deve esserci la directory WEB-INF. Qui oltre al resto 
puoi avere due sottodirectory: classes e lib. Quindi:
in app1/WEB-INF/classes metti le tue classi che stai sviluppando
in app1/WEB-INF/lib metti tutte le librerie JAR che devono essere utilizzate
Quindi le classi contenute nella directory classes e nelle librerie 
contenute in lib sono disponibili alla applicazione app1.
Se ad esempio hai la pagina app1/index.jsp puoi utilizzare le classi 
sopra descritte. Se fai in questo modo non devi toccare _nulla_ del 
CLASSPATH.
Gaetano Bigliardi

 cartella?
forse avevo capito male la domanda. Se tu vuoi che una serie di file JAR 
siano disponibili da tutte le applicazioni di Tomcat puoi guardare qui:
The Tomcat 4 Servlet/JSP Container - Class Loader HOW-TO
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html
Si legge:
---
     * For classes and resources specific to a particular web 
application, place unpacked classes and resources under /WEB-INF/classe 
  of your web application archive, or place JAR files containing those 
classes and resources under /WEB-INF/lib of your web application archive.
     * For classes and resources that must be shared across all web 
applications, place unpacked classes and resources under 
$CATALINA_HOME/shared/classes, or place JAR files containing those 
classes and resources under $CATALINA_HOME/shared/lib.
---
Quindi la directory dove mettere i JAR è $CATALINA_HOME/shared/lib se 
vuoi che i JAR siano disponibili da tutte le applicazioni. Se vuoi che 
un JAR sia invece disponibile dalle pagine di una seingola applicazione 
basta metterlo in /WEB-INF/lib .
Facendo così non è necessario toccare il CLASSPATH. Il class path è 
creato dinamicamente per ogni class loader.
Gaetano Bigliardi

 
Senza impazzire a scriverli tutti a mano puoi farti uno script (se sei 
windowsizzato un file .bat) che ti prepara la variabile con tutti i jar 
contenuti in una certa cartella.
Ciao.
\mirko

 
Questo per Java in generale; per quanto riguarda Tomcat però dovrebbe 
prendersi in automatico quello che metti in common/lib senza bisogno di 
manipolare il CLASSPATH.
Ciao.
\mirko