使用命令行文件输入从{Intelli}运行程序

时间:2015-10-05 15:04:39

标签: java intellij-idea

我使用IntelliJ 14.1.15运行OSX 10.11。

我有一个以txt文件为参数的程序。我可以通过 java SearchCmd test.txt 从终端运行它,然后它允许我输入搜索词并搜索该列表。

如何在IntelliJ中执行此操作,以便我可以单击运行按钮并读取文件,然后我就可以在IntelliJ控制台中输入搜索词。

主要课程' SearchCmd'包含主要方法,如下:

public class SearchCmd {

public static void main (String[] args) throws IOException {
    String name;

    // Check that a filename has been given as argument
    if (args.length != 1) {
        System.out.println ("Usage: java SearchCmd <datafile>");
        System.exit (1);
    }

    // Read the file and create the linked list
    HTMLlist l = Searcher.readHtmlList (args[0]);
}

然而,当我尝试运行它时,它说:&#34;用法:java SearchCmd&#34;。

为了将test.txt文件传递给IntelliJ,我在&#39;运行/调试配置&#39;中输入了文件路径。 可悲的是,我无法附上照片。 : - (

任何有关修复此问题并帮助我从IntelliJ运行它的帮助将不胜感激。

6 个答案:

答案 0 :(得分:11)

转到Run - &gt; Edit Configurations,选择Application,然后提供main class名称和program arguments。然后是Run

enter image description here

答案 1 :(得分:3)

我只是想通了。

因此,您需要粘贴IntelliJ项目根目录中的相对路径,而不是粘贴在绝对路径中。最重要的是,你必须省略最初的正斜杠。

所以我的文件的绝对路径可能是这样的: 电脑/项目/ TestInput / itcwww-small.txt

但我需要在程序参数中添加的路径是: TestInput / itcwww-small.txt

我希望这能帮助别人。

答案 2 :(得分:1)

要遵循的步骤 -
1.运行 - >编辑配置。
enter image description here

2.选择应用程序。

enter image description here

3.提供主类名和命令行参数并应用。

4.运行

答案 3 :(得分:1)

我遇到了同样的问题,并且对此问题的先前答案感到非常困惑,所以这里是对我失去的任何人的解释。

随着项目的开放。

  

运行&gt;编辑配置....

edit configuration

  

程序中添加文件所在的整个目录   参数字段,最后是文件格式。

enter image description here

答案 4 :(得分:0)

您需要进入菜单运行 - &gt;编辑配置

选择您的配置并在计划参数

字段中添加参数

字段程序参数是从命令行出现在类名之后的字段。例如:

java MyMainClass ProgramArgument1 ProgramArgument2 ProgramArgument3

在你的例子中

java SearchCmd test.txt

程序参数是 test.txt

注意:使用绝对路径或检查工作目录是否包含文件的目录

答案 5 :(得分:0)

在“程序参数”中添加输入文件名的相对路径将允许“main”方法将参数作为“字符串”读取

Config

但是,为了让系统真正理解使用文件中的数据作为标准输入,我们似乎必须专门读取文件并将输入流设置为系统输入:

    try {
        FileInputStream inputStream = new FileInputStream(new File(args[0]));
        System.setIn(inputStream);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }