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

标签 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

这可能吗?

最佳答案

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

在运行它之前,您当然必须先将.java 源文件编译成.class 文件。

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

  1. 编译它:javac Foo.java --> 这会给你一个 Foo.class
  2. 运行它:java Foo --> 这需要 Foo.class 并执行它

我建议您先尝试在不使用重定向的情况下编译并运行程序,如果可行,再尝试使重定向生效。

关于java - 通过bash获取Java程序的输入输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33532042/

相关文章:

java - hibernate保存方法-事务之外

java - Eclipse java 代码完成列表导航

java - 关于@Controller @RestController 和@ResponseBody 的困惑

java - 本地tomcat服务器返回405 Method Not allowed

java - 为什么 java 和 c 中增量运算符的行为不同

c++ - 如何将 'ls'(或任何其他 shell 命令)的输出重定向到管道?

regex - sed 命令替换大括号内的数据

linux - 如何保留 stderr 输出并将其重定向到文件

bash - 将 EC2 用户数据 shell 脚本存储在私有(private) S3 存储桶中是否安全?

linux - bash if 语句