我仍然无法产生这个过程。我还需要在其他地方做些什么吗?这是我的代码 -
import java.io。*;
import java.util。*;
import expectj。*;
公共课程试用{ public static void main(String [] args){
ExpectJ exp = new ExpectJ(20);
String command = "java /root/Interactive_Response/MissionExpectJ/bin Hello";//Hello is the class in which i've written the same details but using sysout and sysin statements.
Spawn s;
try {
s = exp.spawn(command);
s.expect("Name: ");//enter the name
s.send("aaaa\n");
s.expect("password: ");
s.send("aaa");
System.out.println("Welcome!");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在下面的例外中,“Interactive_Response”是我的工作区,“MissionExpectJ”是我的项目。
输出
线程“main”中的异常java.lang.NoClassDefFoundError:/ root / Interactive_Response / MissionExpectJ / bin
java.io.IOException:到达流末尾,未找到匹配项
at expectj.Spawn.expect(Spawn.java:321)
at expectj.Spawn.expect(Spawn.java:142)
at expectj.Spawn.expect(Spawn.java:370)
以下代码是旧代码..
我正在尝试使用spawn()方法生成一个进程。但我得到了IOException。 “我的代码不完整”,这正是我正在努力做的事情。请告诉我,如果我错了(或者我宁愿说“请让我知道我哪里出错了”)。我正在尝试使用ExpectJ工具成功执行此操作。
import java.io.*;
import expectj.*;
public class Trial {
public static void main(String[] args) throws Exception {
ExpectJ exp = new ExpectJ(20);
String command = "echo $PPID";
System.out.println("The command you entered is " + command);
Spawn s = exp.spawn(command);//It doesnt display the PPID
s.expect("Name: ");//Here is where my problem starts.I don't understand what i'm missing here
s.send("aaaa\n");
s.expect("password: ");
s.send("aaa");
System.out.println("End of session!");
}
}
输出
您输入的命令是echo $ PPID
$ PPID
线程“main”中的异常java.io.IOException:到达流末尾,未找到匹配项
at expectj.Spawn.expect(Spawn.java:321)
at expectj.Spawn.expect(Spawn.java:142)
at expectj.Spawn.expect(Spawn.java:370)
at Trial.main(Trial.java:12)
答案 0 :(得分:1)
这正是你所期望的:
/bin/echo
,输出$PPID
$ PPID是一个shell特殊变量。 /bin/echo
对此一无所知,只是将其作为文本输出。在那之后,我不确定您认为自己为什么会从Name
获得您正在寻找的输出(password:
,echo
)。