我有一个java程序,它接受输入并根据用户提供的输入打印输出。例如,当我运行它时,程序会提示用户:
System Starts
login <--- User input
Login Successful
我希望能够通过bash运行程序并将程序的输出保存到文本文件中。
这就是我的尝试:
echo "login" | javac TicketSystem/src/*.java > Output.txt
但是当我这样做时,我的Output.txt
文件仍为空。我希望Output.txt
文件包含:
Login Successful
这可能吗?
答案 0 :(得分:3)
要运行java程序,必须使用java
并指定包含main
方法的类的名称。
在运行之前,您必须首先将.java
源文件编译为.class
文件。
例如,您Foo.java
包含public static void main(String[] args)
。
javac Foo.java
- &gt;这会给你一个Foo.class
java Foo
- &gt;这需要Foo.class
并执行它我建议您先尝试编译并运行程序而不重定向,然后如果可行,请尝试重定向。
答案 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