【发布时间】:2016-05-20 02:55:26
【问题描述】:
我正在尝试使我的团队在我们的linux 框上使用的 java 命令行工具也可以在我们的 Windows 机器上运行,但是当程序提示输入时,bufferedReader.readLine() 会在没有提示的情况下返回 null。
在linux 和在我的IntelliJ 控制台 中运行时,以下运行如我所料,但在cmd 或powershell 中没有运行.
public class CliTest {
public static void main(String[] args) throws Exception {
CliTest gen = new CliTest();
gen.run();
}
public void run(){
System.out.println("Hello World");
BufferedReader inputReader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("enter text: ");
String input = inputReader.readLine();
System.out.println("input: " + input);
} catch (IOException e) {
e.printStackTrace();
}
}
使用以下 bat 脚本中的 gradlew 运行/构建的类:
@rem
@rem run test
@rem
echo off
set LIB=atlib
set CP=%LIB%/*;%LIB%
.\gradlew.bat runCliTest
Gradle 任务:
task runCliTest(type:JavaExec) {
def argList = []
main = "com.example.CliTest"
args = argList
println(argList)
workingDir = rootDir
classpath = sourceSets.main.runtimeClasspath
}
这是我希望看到的:
Hello World
enter text: 1
input: 1
这是我得到的:
Hello World
enter text: input: null
【问题讨论】:
标签: java powershell intellij-idea cmd