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代码段从文件中读取来模拟这一点。