l a*_*a s 18 java intellij-idea gradle
我想运行一个带有作为文件提供的args的java类.
在shell上,我能做到
java SomeClass < 1.txt
Run Code Online (Sandbox Code Playgroud)
在intellij和/或gradle上是否有任何等价物.
我试过IntelliJ IDEA - >编辑配置.但是,这个论点并没有过去.
Cra*_*der 18
IntelliJ IDEA目前不支持它:
您可以调整代码,使其接受文件名作为参数并打开它以供阅读.或者您可以创建一个将重新定义的包装类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);
}
}
Run Code Online (Sandbox Code Playgroud)
确保指定文件的完整路径或将IntelliJ IDEA运行/调试配置中的工作目录更改为其位置1.txt.
现在您可以运行MainWrapper类而不是Main类,它将与运行相同
java Main < 1.txt
Run Code Online (Sandbox Code Playgroud)
如果您需要使用不同的文件名来测试,更换new File("1.txt")用args[0],并在传递文件名MainWrapper运行/调试配置程序参数字段.
该< 1.txt语法意味着命令处理器确保标准输入(System.in在 Java 中)提供 1.txt 文件的内容。典型的 Java 启动器不支持这一点。
您可以通过手动重新连接来模拟这一点,System.in以使用您自己的 Java 代码片段从文件中读取数据来执行此操作。
| 归档时间: |
|
| 查看次数: |
7385 次 |
| 最近记录: |