Java BufferedReader openvms

时间:2015-06-11 10:29:16

标签: java openvms

我是一名JAVA新手并正在开发我的第一个程序。我在Windows 7 PC上使用Eclipse Luna。我编译的JAVA版本是1.4.2,因为这是我无法更改的目标系统上的JAVA版本。目标系统正在运行HP OpenVMS。

在PC上,我只想从键盘上获取输入字符串,然后将其打印出来。它在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 个答案:

答案 0 :(得分:1)

您正在运行DCL脚本,即命令过程。也就是说,输入被重定向到您的命令文件。看起来Java命令是命令文件中的最后一行,因此readLine()获取EOF

尝试从DCL命令行执行Java命令或将命令过程更改为

$ set file/attr=(rfm:stmlf,rat:cr) xx2.jar                                     
$ define/user sys$input sys$command                                             
$ java -cp xx2.jar test.test

这会将输入重定向到您启动命令过程的源,通常是您的终端。