Idea 运行 Batch configuraton 与在 Windows 中运行纯 cmd.exe 相比有何不同?
我创建批处理配置以运行我的 Java 应用程序。当我运行它时,它会在 Idea 控制台中显示结果:
cmd.exe /c java -classpath C:\app;C:\app\libs.jar App < input.txt
此应用等待来自标准输入的输入。这一行应该运行它并从 input.txt 文件中读取。但是不要等待输入来阅读它。当我在 Idea 控制台中按 ^D 时,应用程序向我显示没有输入。
同时,当我将此启动脚本从 Idea 控制台直接复制粘贴到 Windows cmd 时,一切都按预期进行,应用程序读取文件并正确完成。
我确实阅读了 stackoverflow 的答案并找到了尝试外部工具创意选项的建议。我尝试将其运行为:
java -classpath C:\app;C:\app\libs.jar App < input.txt
但它仍在等待输入。以及 Java 应用程序运行配置,如果我将文件名作为参数传递,它等待输入:
"C:\Program Files\Java\jdk1.8.0_92\bin\java"
-Didea.launcher.port=7533
"-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IDEA\bin"
-Dfile.encoding=UTF-8
-classpath "long..long..classpath"
com.intellij.rt.execution.application.AppMain Col < input.txt
我确实找到了几个关于 stdin 重定向的链接(one、two、three),似乎没有办法仅通过代码从想法中做到这一点。 谢谢!
最佳答案
我找到的唯一方法是将文件名作为参数传递给 main 函数并添加如下行:
if(args.length > 1)
System.setIn(new FileInputStream(args[1]));
关于java - Intellij 标准输入重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37897520/