PDA

View Full Version : [Java] Come si fa a scegliere un file da riga di comando?


Solido
19-01-2012, 08:35
Ragazzi mi serve il vostro aiuto. Vorrei sapere come si fa a scegliere un file da liena di comando. Vorrei fare un browse ma senza usare swing o interfacce grafiche. In sostanza ho un programma che opera su un file solo che per adesso è statico poichè mi tocca ad andare nel codice a cambiare il path, io invece vorrei tramite un brose selezionare il file!
Qualcuno sa dirmi come si fa?
Grazie mille in ancipo!
:help:

clockover
19-01-2012, 09:05
public static void main(String args[]){....}

quel args[] è ovviamente un array di stringhe... e sono gli argomenti

Solido
19-01-2012, 09:23
public static void main(String args[]){....}

quel args[] è ovviamente un array di stringhe... e sono gli argomenti


Scusa la mia ignoranza ma non ho mica capito sai :p
io ho il seguente codice:


import weka.core.Instances;
import weka.core.Utils;
import java.io.FileReader;
import weka.classifiers.functions.MultilayerPerceptron;
import weka.classifiers.Evaluation;

public class training {

training() {

try {

FileReader init_file = new FileReader("src/zoo.arff");
Instances arff_file = new Instances(init_file);


FileReader trainreader = new FileReader("src/zoo_training.arff");
FileReader testreader = new FileReader("src/zoo_testing.arff");

Instances train = new Instances(trainreader);
Instances test = new Instances(testreader);

arff_file.setClassIndex(arff_file.numAttributes() - 1);
train.setClassIndex(train.numAttributes() - 1);
test.setClassIndex(test.numAttributes() - 1);

MultilayerPerceptron mlp = new MultilayerPerceptron();
mlp.setOptions(Utils
.splitOptions("-L 0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H 4"));

mlp.buildClassifier(train);

Evaluation eval = new Evaluation(train);
eval.evaluateModel(mlp, test);
System.out.println("File choosen is:\n\n" + arff_file);
System.out.println(eval.toSummaryString("\nResults\n======\n",
false));
trainreader.close();
testreader.close();

} catch (Exception ex) {
System.out.println("File doesn't exist!");

ex.printStackTrace();

}

}
}


e per adesso ho il main in un'altra classe:


public class Main {


public static void main(String[] args) {


new training();
}

}



io in sostanza devo fare in modo che questa roba:

FileReader init_file = new FileReader("src/zoo.arff");
Instances arff_file = new Instances(init_file);


FileReader trainreader = new FileReader("src/zoo_training.arff");
FileReader testreader = new FileReader("src/zoo_testing.arff");


mi venga scelta!
questo è un programma di predizione per cui ho bisogno sia del file training che di quello testing in contemporanea perchè li devo passare alla funzione MultiLayerPerceptron... solo che questo è un codice statico e se voglio cambiare file mi tocca a entrare nel codice e cambiare nome... io questo volevo evitarlo... volevo un qualcosa del tipo:
scegli il file:
poi lo selezioni con un browse!
Anche se non so se questo sia possibile...

clockover
19-01-2012, 09:29
poi lo selezioni con un browse!

che cos'è un browse?? Adesso mi sento ignorante io..


comunque
public class prova{
public static void main(String args[]){
for(int i = 0; i < args.length; i++)
System.out.println(args[i]);
}
}
da questo piccolo esempio hai capito? Se non l'hai ancora capito dopo averlo compilato eseguilo in questo modo
java prova
java prova sto facendo una prova
java prova sto facendo un'altra prova

Solido
19-01-2012, 10:33
che cos'è un browse?? Adesso mi sento ignorante io..


comunque
public class prova{
public static void main(String args[]){
for(int i = 0; i < args.length; i++)
System.out.println(args[i]);
}
}
da questo piccolo esempio hai capito? Se non l'hai ancora capito dopo averlo compilato eseguilo in questo modo
java prova
java prova sto facendo una prova
java prova sto facendo un'altra prova

probabilmente mi sono spiegato male... io chiedevo l'equivalente dell'istruzione JFileChooser delle swing, solo che a me interessava l'istruzione per scegliere i files da riga di comando :)
io ho bisogno di poter selezionare in contemporanea quei 3 file .arff che ho scritto.
Tutto qui :)
Per come è scritto adesso il codice io posso solamente andare nel codice e cambiare a mano il nome del file!
Non so se mi sono spiegato!!!:p

!fazz
19-01-2012, 10:45
o gli chiedi a mano il path durante l'esecuzione del programma o meglio passi gli argomenti al programma prima del lancio java mioProgramma pippo pluto paperino

in questo modo all'interno di args ti ritrovi
args[0] contiene pippo
args[1] contiene pluto
args[2] contiene paperino