Come scritto in un
post precedente mi sono imbattuto in Cygwin e dopo averlo provato un pò ho notato un punto debole....l'utilizzo del
classpath
crea non pochi problemi, infatti, non dobbiamo dimenticare che pur
trovandoci in una shell (quasi) Linux , in realtà il tutto gira sotto
Windows. Come è noto, in windows il separatore dei path è
; mentre in linux è : , quindi se provate a lanciare una cosa del tipo :
java -classpath .:/usr/local/pro.jar org.package.miaClasse vi verrà restituito un errore del tipo
ClassNotFound.
Per ovviare a questo incoveniente basta utilizzare in uno script, l'utility di cygwin
cygpath che serve a convertire i path da versione linux a windows e viceversa.
Ad esempio, volendo lanciare il comando
java -classpath .:/usr/local/pro.jar org.package.miaClasse senza ottenere errori basta creare un semplice script (avvia.sh) di questo tipo :
#!/usr/bin/bash
CLASSPATH=`cygpath --path --windows "$1"`
java -classpath $CLASSPATH org.package.miaClasse
In questo modo, digitando avvia.sh nostroClasspath si avvierà la JVM senza problemi!
Per arrivare a questo io ci ho perso un intero pomeriggio....fatene buon uso!