PDA

View Full Version : [Java] Stranezza


Angus
07-11-2005, 15:26
Chi mi sa spiegare perchè il seguente codice, quando eseguito da riga di comando con il parametro \w*, stampa \WINNT? :confused:


public static void main(String[] args) {
System.out.println(args[0]);
}

franksisca
07-11-2005, 15:28
:confused: :confused: :confused: :confused:
credo sia sovuto alla configurazione e al path, dovè il file che esegui???

kingv
07-11-2005, 15:42
niente di strano, l'interprete dei comandi espande l'argomento che passi al programma prima di chiamare la jvm e dato che tu esegui l'applicazione nella root trova la directory \WINNT che soddisfa il pattern che utilizzi , ovvero \w*

se metti il parametro tra apici l'interprete dei comandi non effettua la sostituzione e l'output è quello che ti aspetti ;)

Angus
07-11-2005, 16:16
niente di strano, l'interprete dei comandi espande l'argomento che passi al programma prima di chiamare la jvm e dato che tu esegui l'applicazione nella root trova la directory \WINNT che soddisfa il pattern che utilizzi , ovvero \w*

se metti il parametro tra apici l'interprete dei comandi non effettua la sostituzione e l'output è quello che ti aspetti ;)

Già... peccato però che se uso "\w*" me lo espanda ugualmente, mentre se uso '\w*' all'applicazione arriva la stringa *con* gli apici... Come faccio a dire all'interprete dei comandi di non espandere l'argomento senza sporcare l'input per il programma? :mc:

kingv
07-11-2005, 19:48
Già... peccato però che se uso "\w*" me lo espanda ugualmente, mentre se uso '\w*' all'applicazione arriva la stringa *con* gli apici... Come faccio a dire all'interprete dei comandi di non espandere l'argomento senza sporcare l'input per il programma? :mc:


strano, mi aspettavo che anche l'interprete dei comandi di win usasse il doppio apice per evitare l'espansione. Domani in ufficio provo, qui non ho 2000/XP

Angus
09-11-2005, 10:44
vediamo se oggi qualcuno mi sa dare una risposta... :mc:

kingv
09-11-2005, 11:31
vediamo se oggi qualcuno mi sa dare una risposta...


ho provato su una macchina con XP e se utilizzo i doppi apici non esegue l'espansione dell'argomento passato al programma, ovvero:

java test "\w*"

mi restituisce l'output previsto:

\w*

Su cosa l'hai provato tu?

Angus
09-11-2005, 12:00
Mille grazie kingv! Ho appena constatato che da console coi doppi apici funziona e da JBuilder no! Da console avevo provato solo con gli apici singoli... :muro: La pigrizia mi ha fregato anche stavolta :doh:

annotazione personale: JBuilder è un pò birichino :rolleyes: