gpt4 book ai didi

java - Spawn类的主要使用以及ExpectJ中的spawn方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:10 28 4
gpt4 key购买 nike

我仍然无法生成该过程。我需要在其他地方做些什么吗?这是我的代码-

导入 java.io.*;

导入 java.util.*;

导入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)

在 Trial.main(Trial.java:14)

下面的代码是旧的..

我正在尝试使用 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)

最佳答案

它完全符合您的预期:

  • 它调用/bin/echo输出 $PPID
  • 然后它会抛出异常,告诉您匹配失败。

$PPID 是一个 shell 特殊变量。 /bin/echo对此一无所知,只是将其输出为文本。在那之后,我不确定为什么你认为你会从 Name 得到你正在寻找的输出( password:echo ) .

关于java - Spawn类的主要使用以及ExpectJ中的spawn方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5672663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com