IntelliJ IDEA:使用外部文件中的参数运行java
问题描述:
我想运行一个java类,并将args作为文件提供。IntelliJ IDEA:使用外部文件中的参数运行java
壳牌,我可以做
java SomeClass < 1.txt
是否有相当于该上的IntelliJ和/或gradle这个。
我尝试了IntelliJ IDEA - >编辑配置。但是,争论并没有得到通过。
答
< 1.txt
语法表示命令处理器确保标准输入(Java中的System.in
)提供了1.txt文件的内容。典型的Java启动器不支持这一点。
您可以通过手动重新登录System.in
来使用您自己的Java代码段从文件中读取来模拟此操作。
答
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
运行/调试配置程序参数字段。