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

我想运行一个带有作为文件提供的args的java类。

在shell上,我能做到

java SomeClass < 1.txt 

在intellij和/或gradle上有没有相应的东西。

我试过IntelliJ IDEA – >编辑配置。 但是,这个论点并没有过去。

IntelliJ IDEA目前不支持它:

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

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

 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的位置。

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

 java Main < 1.txt 

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

< 1.txt语法意味着命令处理器确保标准输入(Java中的System.in )提供1.txt文件的内容。 典型的Java启动程序不支持此function。

您可以通过手动重新连接System.in来使用您自己的Java代码段从文件中读取来模拟这一点。