我正在尝试使用“hdfs dfs-mkdir/user/19491/testfolder”创建一个目录,其代码如下:
Session session = createSSHSession();
ChannelExec channelExec = null;
channelExec = (ChannelExec)session.openChannel("exec");
channelExec.setCommand("hdfs dfs -mkdir -p hdfs://user/19491/testfolder");
channelExec.connect();
BufferedReader br=new BufferedReader(new InputStreamReader(channelExec.getInputStream()));
String text;
while((text=br.readLine())!=null) {
System.out.println("Text is:"+text);
}
int exitStatus = channelExec.getExitStatus();
System.out.println("Exit status:"+exitStatus);
运行此代码后,将创建文件夹,但返回的退出状态为-1。根据这个链接,这意味着一个错误。为什么会这样?文件夹已创建,不应该返回0吗?
1条答案
按热度按时间lyfkaqu11#
(假设您使用的是jsch)
getExitStatus
命令尚未完成时返回-1。http://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/channel.html#getexitstatus()
我想这个函数以前调用过一点
hdfs
命令结束。此示例等待通道关闭。