Java BufferedReader openvms
我是JAVA新手,正在开发我的第一个程序。我在Windows 7 PC上使用Eclipse Luna。我编译的JAVA版本是1.4.2,因为这是目标系统上的JAVA版本,我无法更改。目标系统正在运行HP OpenVMS
在电脑上,我只是想从键盘上获取一个输入字符串,然后打印出来。它在PC上运行良好。然后我Export -> Runnable JAR
到OpenVMS框并在那里运行它。当我这样做时,我会得到Enter Input String:
提示。在我不触碰键盘的情况下,这会很快变为Enter Input String: String is null
,程序就到此结束。代码如下所示。有人能告诉我我做错了什么吗
JAVA代码
package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter input string: ");
String s = br.readLine();
System.out.println("String is " + s);
}
}
在openVMS框中,我正在运行这个命令文件
$ set file/attr=(rfm:stmlf,rat:cr) xx2.jar
$ java -cp xx2.jar test.test
这个的输出看起来像
$ @test
$ Enter input string: String is null
# 1 楼答案
您正在运行一个DCL脚本,也就是一个命令过程。也就是说,输入被重定向到命令文件。看起来Java命令是命令文件中的最后一行,所以
readLine()
得到EOF
尝试从DCL命令行执行Java命令,或将命令过程更改为
这会将输入重定向到启动命令过程的源,通常是终端