UPDATE:
This feature is now available for some Run/Debug configurations. At the moment supported types for Java-based run configurations are: Application, Java Scratch, JUnit, JarApplication.
Use the Redirect input from option:
Original answer from 2017 with the workaround:
IntelliJ IDEA doesn't support it at the moment:
- IDEA-88717 No way to configure STDIN reading from a file at Run/Debug configurations
You can adjust the code so that it accepts the file name as a parameter and opens it for reading. Or you can create a wrapper class that will redefine System.in
, then start your original Main
class:
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);
}
}
Make sure to either specify the full path to the file or to change the working directory in IntelliJ IDEA Run/Debug configuration to the location of 1.txt
.
Now you can run MainWrapper
class instead of the Main
class and it will work the same as running
java Main < 1.txt
If you need to test with different file names, replace new File("1.txt")
with args[0]
and pass the file name in the MainWrapper
Run/Debug configuration Program arguments field.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…