PDA

Visualizza la versione completa : [JAVA]: creare un file .bat per settare il classpath.


LukeSky
02-03-2005, 20:31
Ho creato un file .bat per creare un classpath temporaneamente e compilare alcuni particolare sorgenti Java.
Il il file .bat è scritto in questo modo:

set CATALINA_HOME=C:\Programmi\Apache Software Foundation\Tomcat 5.5;

set AXIS_HOME=C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\axis;

set AXIS_LIB=C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\axis\WEB-INF\lib;

set CLASSPATH=%CLASSPATH%;%AXIS_LIB%\activation.jar;%A XIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.jar;%AXIS_LIB%\commons-discovery.jar;%AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\mail.jar;%AXIS_LIB%\saaj.jar; %AXIS_LIB%\wsdl4j.jar;%AXIS_LIB%\xmlsec.jar;

set JAVA_HOME=C:\Programmi\Java\jdk1.5.0;

se lo eseguo e compilo non riesce cmq a trovare le librerie.

Come mai?
il mio sistema operativo e windows xp professional.
Dove sbaglio?
e come si può fare per settare delle variabili di ambiente temporaneamente?

markmark
02-03-2005, 20:52
Scusa ma non so rispondere alla tua domanda, cmq vorrei fartene una io visto che ho problemi con il tomcat 5.5 setti con AXIS_HOME?
Il mio problema è che non riesco a far partire la mia applicazione web mentre con la versione 3.3 ci riuscivo tranquillamente... mi sai dare una risposta? ciao grazie

LukeSky
02-03-2005, 21:05
io ho la versione 5.5 di tomcat.

le variabili di ambiente che setto sono quelle elencate sopra.

e non ho alcun problema a far partire tomcat con axis.

basta che scrivo http://localhost:8080/axis

il mio problema sta nel fatto che se le variabili le setto dalla proprietà di sistema non ho problemi.
ma se volessi settarle al momento con un file .bat non ci riesco.

LeleFT
03-03-2005, 15:31
Non mi sembra di rilevare errori, ma vorrei capire in che modo usi quel file BAT.

Settando le variabili d'ambiente in questo modo, infatti, è importante non cambiare shell dei comandi: ovvero, dovresti aprire un prompt, avviare da lì il bat e, sempre da lì, senza chiudere la finestra, avviare la compilazione.

In alternativa, prova ad utilizzare le virgolette per tutti i percorsi che contengono spazi, in questo modo:


set CATALINA_HOME="C:\Programmi\Apache Software Foundation\Tomcat 5.5";


Ciao. :ciauz:

LukeSky
03-03-2005, 17:57
ho provato anche con le virgolette ma niente da fare.

forse sbaglio la procedura,ecco quello che faccio:

start->esegui->cmd

dopodichè mi posiziono sulla directory dove è il sorgente da compilare; nella stessa directory c'è il file .bat da eseguire.

esegui il file bat è ottengo questo:

Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Luca Petrini>cd C:\Documents and Settings\Luca Petrini
\Desktop\Software\EdbfmClient

C:\Documents and Settings\Luca Petrini\Desktop\Software\EdbfmClient>setEnv

C:\Documents and Settings\Luca Petrini\Desktop\Software\EdbfmClient>set CATALINA
_HOME="C:\Programmi\Apache Software Foundation\Tomcat 5.5";

C:\Documents and Settings\Luca Petrini\Desktop\Software\EdbfmClient>set AXIS_HOM
E="C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\axis";

C:\Documents and Settings\Luca Petrini\Desktop\Software\EdbfmClient>set AXIS_LIB
="C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\axis\WEB-INF\lib";


C:\Documents and Settings\Luca Petrini\Desktop\Software\EdbfmClient>set classpat
h=".;"C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\axis\WEB-INF\li
b";\activation.jar;"C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\a
xis\WEB-INF\lib";\axis.jar;"C:\Programmi\Apache Software Foundation\Tomcat 5.5\w
ebapps\axis\WEB-INF\lib";\axis-ant.jar;"C:\Programmi\Apache Software Foundation\
Tomcat 5.5\webapps\axis\WEB-INF\lib";\commons-discovery.jar;"C:\Programmi\Apache
Software Foundation\Tomcat 5.5\webapps\axis\WEB-INF\lib";\commons-logging.jar;"
C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\axis\WEB-INF\lib";\ja
xrpc.jar;"C:\Programmi\Apache Software Foundation\Tomcat 5.5\webapps\axis\WEB-IN
F\lib";\log4j-1.2.8.jar;"C:\Programmi\Apache Software Foundation\Tomcat 5.5\weba
pps\axis\WEB-INF\lib";\mail.jar;"C:\Programmi\Apache Software Foundation\Tomcat
5.5\webapps\axis\WEB-INF\lib";\saaj.jar;"C:\Programmi\Apache Software Foundation
\Tomcat 5.5\webapps\axis\WEB-INF\lib";\wsdl4j.jar;"C:\Programmi\Apache Software
Foundation\Tomcat 5.5\webapps\axis\WEB-INF\lib";\xmlsec.jar";

C:\Documents and Settings\Luca Petrini\Desktop\Software\EdbfmClient>set JAVA_HOM
E="C:\Programmi\Java\jdk1.5.0";

C:\Documents and Settings\Luca Petrini\Desktop\Software\EdbfmClient>javac EDBFMC
lient.java
EDBFMClient.java:8: package javax.xml.rpc does not exist
import javax.xml.rpc.*;
^
EDBFMClient.java:9: package org.apache.axis.client does not exist
import org.apache.axis.client.Call;
^
EDBFMClient.java:10: package org.apache.axis.client does not exist
import org.apache.axis.client.Service;
^
EDBFMClient.java:185: cannot find symbol
symbol : class Call
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:185: cannot find symbol
symbol : class Call
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:185: cannot find symbol
symbol : class Service
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:212: cannot find symbol
symbol : class ServiceException
location: class EDBFMClient
}catch(ServiceException ex){
^
EDBFMClient.java:226: cannot find symbol
symbol : class Call
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:226: cannot find symbol
symbol : class Call
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:226: cannot find symbol
symbol : class Service
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:253: cannot find symbol
symbol : class ServiceException
location: class EDBFMClient
}catch(ServiceException ex){
^
EDBFMClient.java:267: cannot find symbol
symbol : class Call
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:267: cannot find symbol
symbol : class Call
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:267: cannot find symbol
symbol : class Service
location: class EDBFMClient
Call call = (Call) new Service().createCall();
^
EDBFMClient.java:286: cannot find symbol
symbol : class ServiceException
location: class EDBFMClient
}catch(ServiceException ex){
^
15 errors

invece se le stesse variabili le setto dalle proprietà di sistema non ci sono errori, trova tutte le librerie.
Può essere una cosa che dipende da WindowsXP?

LeleFT
03-03-2005, 18:21
Uhm... :master:
Più che da WindowsXP credo che la cosa dipenda dal CLASSPATH: non vorrei che il javac lo ignorasse completamente.

Sinceramente non ho installato Tomcat e non ho mai realizzato pagine JSP per cui non ti so dire con esattezza quale sia il problema (io il classpath non l'ho nemmeno impostato, per dire).

Però, se il tutto funziona impostando correttamente le variabili d'ambiente dalle proprietà di sistema, continua ad utilizzare quell impostazioni. Il problema è che se devi distribuire ciò che produci potrebbe non funzionare su un PC diverso, per questo sarebbe importante che tutte le librerie fossero distribuite con l'applicazione web e che essa non sia soggetta alle impostazioni delle variabili d'ambiente.


Ciao. :ciauz:

Loading