如何从命令行运行程序?

时间:2014-06-18 23:57:38

标签: java command-line

我正在尝试将随机数写入文件。所以每行基本上都有一个数字,方法名称采用filepath参数和long n参数,即生成的随机数。 这就是我到目前为止所做的:

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();
    }

我是否在正确的轨道上?另外,我将如何通过cmd运行此程序。我知道编译和运行它的命令,但我想我需要一个测试人员来运行它。那么有人可以告诉我如何通过cmd运行此代码。

编辑:搞定了!谢谢大家的帮助!

4 个答案:

答案 0 :(得分:2)

您已完成打印。 而不是做

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

你想要做

out.println(num);

这是跨平台的(在我看来,更容易阅读)。

此外,为了从命令行运行程序,您需要做的就是在类中添加一个main方法,如下所示

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);

}

这个主要假设您从命令行传入2个参数,数字后跟文件名

希望这是有帮助的

答案 1 :(得分:1)

filePath是一个保存文件路径的变量,因此您不希望将其括在双引号中。如果这样做,则会将其视为String,因此程序会搜索路径为filePath的文件。

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

&#34;测试员&#34;可以像运行程序一样运行程序:java programName

答案 2 :(得分:1)

    PrintWriter out = new PrintWriter("filePath");

应该是

    PrintWriter out = new PrintWriter(filePath);

您希望在参数中使用变量名称,而您传递的是字符串。

答案 3 :(得分:0)

有两种方法可以测试:

  1. 在您的班级中引入一个main方法,并从main调用您的generate方法。
  2. 添加一个单元测试框架jar并编写一个单元测试类&amp;方法。