簡體   English   中英

通過bash獲取Java程序的輸入和輸出

[英]Obtain input and output of Java program through 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文件。

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

  1. 編譯它: javac Foo.java >這給你一個Foo.class
  2. 運行它: java Foo >這需要Foo.class並執行它

我建議您先嘗試在不進行重定向的情況下編譯並運行程序,然后,如果可行,請嘗試使重定向生效。

嘗試:

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

javac是生成.class文件的compile命令。 例如,如果我有包含main方法的Program.java,我將首先運行

    javac Program.java

這將產生一個Program.class文件。 然后你會跑

    java Program

執行主要方法的程序。

因此,在這種情況下,如果您的主要方法在Program.java中,則可以運行

    echo "login" | java Program > Output.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM