PDA

View Full Version : [Java]Dubbio passaggio parametri via shell


DonDepo
05-09-2008, 10:05
Salve a tutti. Ho un dubbio: se io eseguo un comando da shell del tipo "java it.unimi.dsi.mg4j.query.Query -h -i it.unimi.dsi.mg4j.query.FileSystemItem -c actors.collection mycollection-text mycollection-title", it.unimi.dsi.mg4j.query.Query è la classe da eseguire mentre il resto sono parametri. Ma questi parametri dove vanno a finire? vengono passati al costruttore della classe, anche se ne dubito dato che questa classe ha un costruttore a 1 parametro, o a chi altro?

gokan
05-09-2008, 10:22
Ciao, generalmente quando si passano dei valori da console, essi vengono passati al metodo main, che prende come parametro un array di stringhe.


class LaMiaClasse{
....

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

}


Se dopo aver compilato la classe, esegui:
java LaMiaClasse argomento

otterrai come risultato: argomento di prova

Se non passi nulla ottieni invece un'eccezione.

DonDepo
05-09-2008, 10:31
Ok capisco. Per sapere bene cosa fa dovrei guardare il main della classe. Poichè ho i file in formato .class esiste un modo per ottenere da questo l'originale file.java?

banryu79
05-09-2008, 11:32
Puoi usare Jad (http://www.kpdus.com/jad.html)o Cavaj (http://download.html.it/software/vedi/1932/cavaj-java-decompiler/), per esempio.

DonDepo
05-09-2008, 11:57
Grazie per l'informazione :)

gokan
05-09-2008, 11:59
Non ti è proprio possibile arrivare ai source della classe?

DonDepo
05-09-2008, 15:36
Penso di aver capito. Sapreste dirmi come faccio per avviare una classe da un programma java in modo tale da poterci inserire dei parametri(quelli che andranno a finire nell'args[])?