expectinator.spawn上的ExpectJ异常

时间:2017-02-05 06:42:36

标签: java expectj

我尝试将ExpectJ作为bigginner。我从互联网上获得了以下代码。这是在第一级抛出异常。代码和例外情况如下。我在Mac电脑上使用它。

package Linux;
import expectj.ExpectJ;
import expectj.Spawn;
import expectj.TimeoutException;

public class App {

    public static void main(String[] args) {
        try {
            ExpectJ expectinator = new ExpectJ(5);

            // Fork the process
            Spawn shell = expectinator.spawn("/bin/bash");

            // Talk to it
            shell.send("echo Chunder\n");
            shell.expect("Chunder");
            shell.send("exit\n");
            shell.expectClose();
        }
        catch(TimeoutException te){
            System.out.println("Time!!");
        }
        catch(Exception e) {
            System.out.println(e);           
        }
    }
}

例外情况如下。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory    at expectj.ProcessSpawn.<clinit>(ProcessSpawn.java:19)  at expectj.ExpectJ.spawn(ExpectJ.java:57)   at Linux.App.main(App.java:13) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory   at java.net.URLClassLoader$1.run(URLClassLoader.java:202)   at java.security.AccessController.doPrivileged(Native Method)   at java.net.URLClassLoader.findClass(URLClassLoader.java:190)   at java.lang.ClassLoader.loadClass(ClassLoader.java:306)    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)    ... 3 more

ExpectJ 2.0.7也包括在内。&#34; / bin / bash&#34;路径也可以在mac中使用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

  

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory   .... Caused by: java.lang.ClassNotFoundException:

从这条消息可以清楚地看出ExpectJ在内部使用了apache-commons日志库。运行代码时,请确保commons-logging jar在您的类路径中。