2015-07-05 42 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

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