2015-07-05 70 views
8

在eclipse中曾經有一個bug,它阻止運行配置將文件重定向到stdin,但據稱它已被修復。但是,我找不到任何說明如何修復的文檔。從eclipse中的文件重定向stdin與運行配置

很容易誤解我想要完成的事情,所以讓我說清楚。我不在尋找能夠讀取文件的代碼。我不想通過一個文件名作爲參數。我不想重定向stdout或stderr。

我有現有的代碼,在正常的標準輸入不知道,如果是從鍵盤或文件來:

scanner = new Scanner(System.in); 
number = scanner.nextInt(); 

從文件重定向輸入可以在過程中的命令提示符下完成,但我試圖讓eclipse配置爲在ctrl-F11按鍵的觸碰下自動執行。

公平的警告,我做了一些網絡搜索試圖自己回答這個問題,他們中的許多人聲稱答案是在Run Configuration | Common但他們最終只能用於標準輸出。

+1

這是eclipse 4.5的功能公告和描述:https://www.eclipse.org/mars/noteworthy/#_assigning_stdin_to_a_file –

+0

@Stanec您的評論是最好的答案。可能需要注意的是,如果你在4.4中試用這個功能,你可以在你知道發生了什麼之前用輸出結果覆蓋你的輸入文件。 – CandiedOrange

+0

@Stanec不幸的是,儘管你的鏈接文檔相反,在下載eclipse mars 4.5.0 M1後,我發現'Common'外觀和「工作方式」與luna 4.4相同。:( – CandiedOrange

回答

6

這是公佈和特徵的說明適用於Eclipse 4.5(火星):http://eclipse.org/mars/noteworthy/#_assigning_stdin_to_a_file

標準輸入,現在可以分配到一個文件中的通用啓動的標籤 配置對話框。 enter image description here

正如預期的那樣,這是剛剛發佈的Eclipse 4.5的新功能,因此將不會在較早版本的工作。

+0

由於一些mars 4.5版本沒有這個特性,你可以用最低版本更具體嗎?我知道M1沒有它,但是帶有Build ID的SDK:I20150603-2000 – CandiedOrange

+0

無論從https://www.eclipse.org/downloads/(和/或新的Oopmh安裝程序)直接下載,都包含該功能。只有開發版本(標記爲「M」作爲「里程碑」)不會包含修復程序。 –

2

您需要使用Eclipse Mars,因爲錯誤修復沒有被反向移植。

進入Run Configurations,打開您的Java Application。在Common選項卡中,有一個Standard Input and Output組,您可以在其中定義輸入文件。

5

我希望我理解正確。

該文件需要在最後有新行。

public static void main(String[] args) { 
    try (Scanner scanner = new Scanner(System.in)) { 
     System.out.println(scanner.next()); 
    } 
} 

要包含文本(並以新的空行結束,而不僅僅是文本)的文件。

然後Run Configuration | Common | Input File

而程序將打印文件內容。

編輯:建立ID:20150621-1200

+0

」最後需要一個新行「已確認+ 1 – CandiedOrange

+0

好,你可以接受答案嗎? –