2014-06-18 4 views
0

J'essaye d'écrire des nombres aléatoires dans un fichier. Donc, fondamentalement, un nombre sur chaque ligne et le nom de la méthode prend l'argument filepath et l'argument long n qui est le nombre de nombres aléatoires générés. C'est ce que j'ai jusqu'à présent:Comment lancer un programme à partir d'une ligne de commande?

public void generate(long n, String filePath) throws FileNotFoundException 
    { 
     PrintWriter out = new PrintWriter("filePath"); 
     Random r = new Random(); 
     for(int i = 0; i < n; i++) 
     { 
      int num = r.nextInt(10); 
      out.write(num + "\n"); 
     } 

     out.close(); 
    } 

Suis-je sur la bonne voie? Aussi, comment pourrais-je faire pour exécuter ce programme via cmd. Je connais les commandes pour la compiler et l'exécuter mais je pense que j'ai besoin d'un testeur pour l'exécuter. Alors quelqu'un pourrait-il me donner des instructions sur la façon dont je pourrais exécuter ce code via cmd.

Editer: Ça marche! Merci à tous pour l'aide!

+0

Un peu de lecture serait prudent: http://docs.oracle.com/javase/tutorial/getStarted/application/index.html? utm_source = twitterfeed & utm_medium = twitter, http://csis.pace.edu/~bergin/KarelJava2ed/ch 2/javamain.html, http://java67.blogspot.com/2012/08/what-is-main-method-in-java-why-main-is.html – user2864740

+1

(Une question à la fois .. et faites Assurez-vous qu'il est reflété dans le titre.) – user2864740

Répondre

2

vous êtes proche de votre impression. Au lieu de faire

out.write(num + "\n"); 

Vous voudrez plutôt faire

out.println(num); 

qui est multiplateforme (et à mon avis, plus facile à lire).

De plus, afin d'exécuter votre programme en ligne de commande, tout ce que vous aurez besoin de faire est d'ajouter une méthode principale de votre classe, comme si

public static void main(String[] args) throws FileNotFoundException { 
    int n = Integer.parseInt(args[0]); 
    String filePath = args[1]; 
    YourClass c = new YourClass(); 
    c.generate(n, filePath); 

} 

cette principale considère qu'il va passer à 2 paramètres de ligne de commande, le nombre suivi par le nom du fichier

Hope this utile

1

filePath est une variable qui contient le chemin du fichier, donc vous ne voulez pas l'encadrer entre guillemets. Si vous le faites, il est traité comme String, le programme recherche donc un fichier avec le chemin filePath.

PrintWriter out = new PrintWriter(filePath); // no "" 

Le « testeur » peut exécuter le programme de la même manière que vous l'exécutez: java programName

0

Il y a deux façons de tester ceci:

  1. introduisons une principale méthode dans votre classe et appel votre méthode de génération de main.
  2. Ajoutez des jarres de structure de test unitaire et écrivez une méthode de test unitaire & pour cela.
1
PrintWriter out = new PrintWriter("filePath"); 

devrait être

PrintWriter out = new PrintWriter(filePath); 

Vous souhaitez utiliser le nom de la variable dans les paramètres, ce que vous passiez est une chaîne à la place.

Questions connexes