Java ClassNotFoundException和Jemmy示例
我试图从中启动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
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.egpackage org.sample
它将返回具有完整包名的类,因此它将是org.sample.waitWindowsSample
。这将是上述问题的解决方案,因为开发人员不必将类路径作为普通字符串。您在评论之前是否尝试过启动此代码?不,实际上我没有。现在我试过了,它和绳子配合得很好。然而,我使用命令行来编译和运行,而不是使用NetBeans IDE。使用javac
编译时,添加-cp jemmy.jar
就足够了;但是在使用java
运行时,必须将WaitWindowSample.class
的位置包含到cp中,否则它找不到类:java-cp。;jemmy.jar waitWindowsSample
。但它仍然没有回答最初的问题。