IntelliJ IDEA:使用外部文件中的 args 运行 java

2022-09-02 12:13:15

我想运行一个java类,其中的args作为文件提供。

在壳上,我可以做

    java SomeClass < 1.txt

在intellij和/或gradle上是否有任何等效项。

我尝试了IntelliJ IDEA ->编辑配置。但是,这个论点没有通过。


答案 1

更新

此功能现在可用于某些运行/调试配置。目前,基于Java的运行配置支持的类型是:Application,Java Scratch,JUnit,JarApplication。

使用重定向输入自选项:

Redirect input from


2017 年的原始答案和解决方法:

IntelliJ IDEA目前不支持它:

  • IDEA-88717无法在运行/调试配置中配置从文件中读取 STDIN

您可以调整代码,使其接受文件名作为参数并打开它进行读取。或者,您可以创建一个将重新定义的包装类,然后启动原始类:System.inMain

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class MainWrapper {
  public static void main(String[] args) throws IOException {
    FileInputStream is = new FileInputStream(new File("1.txt"));
    System.setIn(is);
    Main.main(args);
  }
}

确保指定文件的完整路径,或将 IntelliJ IDEA 运行/调试配置中的工作目录更改为 的位置。1.txt

现在,您可以运行类而不是类,它将与运行相同MainWrapperMain

java Main < 1.txt

如果需要使用不同的文件名进行测试,请在“运行/调试配置程序参数”字段中替换并传递文件名。new File("1.txt")args[0]MainWrapper


答案 2

从版本2018.3开始,您现在可以这样做:
- 选择“运行/调试配置” - 在“
重定向输入自”字段中设置输入文件的路径

enter image description here


推荐