Idea如何运行批处理配置与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的答案,并找到了尝试使用外部工具Idea选项的建议。我尝试以以下方式运行它:
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
我找到了几个链接(一个,两个,三个),与标准输入重定向有关。看起来没有办法仅从Idea中进行此操作,需要在代码中实现。 谢谢!
if(args.length > 1)System.setIn(new FileInputStream(args[1]));
- Ivan BryzzhinSystem.setIn
。如果你能把它写成答案,我一定会点赞的。 - coding_idiot