通过bash获取Java程序的输入和输出

时间:2015-11-04 21:08:23

标签: java bash

我有一个java程序,它接受输入并根据用户提供的输入打印输出。例如,当我运行它时,程序会提示用户:

System Starts  

login <--- User input

Login Successful 

我希望能够通过bash运行程序并将程序的输出保存到文本文件中。

这就是我的尝试:

echo "login" | javac TicketSystem/src/*.java > Output.txt

但是当我这样做时,我的Output.txt文件仍为空。我希望Output.txt文件包含:

Login Successful

这可能吗?

2 个答案:

答案 0 :(得分:3)

要运行java程序,必须使用java并指定包含main方法的类的名称。

在运行之前,您必须首先将.java源文件编译为.class文件。

例如,您Foo.java包含public static void main(String[] args)

  1. 编译它:javac Foo.java - &gt;这会给你一个Foo.class
  2. 运行它:java Foo - &gt;这需要Foo.class并执行它
  3. 我建议您先尝试编译并运行程序而不重定向,然后如果可行,请尝试重定向。

答案 1 :(得分:1)

尝试:

    echo "login" | java <class name that contains main method> > Output.txt

javac是生成.class文件的编译命令。例如,如果我有包含main方法的Program.java,我会先运行

    javac Program.java

哪会产生Program.class文件。然后你将运行

    java Program

执行程序的主要方法。

因此,在这种情况下,如果您的main方法在Program.java中,您将运行

    echo "login" | java Program > Output.txt