无法从 DSPLIBL 接收输出(as400.access 包)



我正在尝试使用 java 连接到 AS/400 服务器,并想运行一些简单的命令。

我的导入是:

import com.ibm.as400.access.AS400;
import com.ibm.as400.access.AS400Message;
import com.ibm.as400.access.CommandCall;

这是我到目前为止所拥有的:

AS400 as400 = null;
Scanner scanner = new Scanner(System.in);
try {
as400 = new AS400(host);            
as400.setUserId(user);
as400.setPassword(pass);
CommandCall cmd = new CommandCall(as400);

while(true) {
System.out.println("Ready for input, type "quit" to end session");
String commandStr = scanner.nextLine();
System.out.println("Command entered: " + commandStr);
if(commandStr.equals("quit")) {
break;
}
System.out.println("Executing: " + commandStr);
boolean success = cmd.run(commandStr.toUpperCase());
System.out.println("Finished execution");
if (success) {  
System.out.println("Command Executed Successfully.");
}else{
System.out.println("Command Failed!");
}
// Get the command results
System.out.println("Getting output");
AS400Message[] messageList;
messageList  = cmd.getMessageList();
for (AS400Message message : messageList){
System.out.println(message.getText());
}

}                       
}catch(UnknownHostException uh){
System.out.println("Unknown host");         
}catch(Exception e) {
e.printStackTrace();
}finally{
scanner.close();
try {
as400.disconnectAllServices();
}catch(Exception e) {}
}

但是,当我尝试运行DSPLIBL时:我得到一个空白输出。

Ready for input, type "quit" to end session
dsplibl
Command entered: dsplibl
Executing: dsplibl
Finished execution
Command Executed Successfully.
Getting output
Ready for input, type "quit" to end session

然而,其他一切似乎都很好。CRTLIB库名称工作正常,它返回输出消息。 无效命令还会返回消息,指出输入无效。 只是DSPLIBL没有给我输出。

有什么想法是错误的吗?

文档特别指出 CommandCall

允许 Java™ 程序调用非交互式 IBM® i 命令。

DSPLIBL 是一个交互式命令。

您成功为 CRTLIB 返回的"输出"是该命令返回的完成消息。

查看 Job 对象的 getUserLibraryList() 方法

相关内容

  • 没有找到相关文章

最新更新