Java ClassNotFoundException和Jemmy示例

Java ClassNotFoundException和Jemmy示例,java,exception,jemmy,Java,Exception,Jemmy,我试图从中启动jemmy示例,并不断获取有关测试类的ClassNotFoundExeption,在org.netbeans.jemmy.test.main(字符串参数)中给出了这些内容。 例如,与 enter code here import org.netbeans.jemmy.*; import org.netbeans.jemmy.explorer.*; import org.netbeans.jemmy.operators.*; public class WaitWindowSa

我试图从中启动jemmy示例,并不断获取有关测试类的
ClassNotFoundExeption
,在
org.netbeans.jemmy.test.main(字符串参数)
中给出了这些内容。 例如,与

enter code here



import org.netbeans.jemmy.*;
import org.netbeans.jemmy.explorer.*;
import org.netbeans.jemmy.operators.*;

public class WaitWindowSample implements Scenario {

    public int runIt(Object param) {
        try { //start application 
            new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser").startApplication();
            //wait frame 
            new JFrameOperator("GUI Browser");
        } catch (Exception e) {
            e.printStackTrace();
            return (1);
        }
        return (0);
    }

    public static void main(String[] argv) {
        String[] params = {"WaitWindowSample"};
        org.netbeans.jemmy.Test.main(params);
    }
} 
我得到:

> Class WaitWindowSample does not exist!
java.lang.ClassNotFoundException: WaitWindowSample
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
我有一个普通的Netbeans(ant)项目,并将jemmy2.jar添加到项目库中。
有什么问题吗?

您应该在完整的包信息中使用classname。 请尝试使用以下代码:

public static void main(String[] argv) {
    String[] params = {WaitWindowSample.class.getName()};
    org.netbeans.jemmy.Test.main(params);
}

我希望这是值得等待9个月的,因为它不会有任何帮助。该类由用户声明,如问题中所述。可能在包中声明类而不是默认包会有所帮助。我只能部分同意你的看法。是的,这篇文章的作者确实可以使用默认以外的包,这可能是导致此错误的主要原因。另一方面,我们不知道他是否故意这样做。使用WaitWindowsSample.class.getName()而不是“WaitWindowsSample”可以避免包出现问题,因为它会返回带有包的类的全名。在默认包的情况下,
WaitWindowsSample.class.getName()
将返回问题所述的
“WaitWindowsSample”
。是的,在默认包的情况下,
waitWindowsSample.class.getName()
将返回
waitWindowsSample
。对于非默认包f.eg
package org.sample
它将返回具有完整包名的类,因此它将是
org.sample.waitWindowsSample
。这将是上述问题的解决方案,因为开发人员不必将类路径作为普通字符串。您在评论之前是否尝试过启动此代码?不,实际上我没有。现在我试过了,它和绳子配合得很好。然而,我使用命令行来编译和运行,而不是使用NetBeans IDE。使用
javac
编译时,添加
-cp jemmy.jar
就足够了;但是在使用
java
运行时,必须将
WaitWindowSample.class
的位置包含到cp中,否则它找不到类:
java-cp。;jemmy.jar waitWindowsSample
。但它仍然没有回答最初的问题。