我有这段代码:
import org.openqa.selenium.firefox.FirefoxDriver;
public class Test {
public static void main(String[] args) {
try{
FirefoxDriver driver = new FirefoxDriver();
driver.get("http:\\www.yahoo.com");
} catch(Exception e){
e.printStackTrace();
}
}
}
我希望在cmd
中运行它。因此,我在.bat
文件中调用以下命令。
javac -classpath "C:\selenium-2.42.2\selenium-server-standalone-2.42.2.jar;C:\selenium-2.42.2\selenium-java-2.42.2.jar;C:\selenium-2.42.2\selenium-firefox-driver-2.42.2.jar" Test.java
java Test
返回以下错误:
C:\selenium-2.42.2>javac -classpath "C:\selenium-2.42.2\selenium-server-standalo
ne-2.42.2.jar;C:\selenium-2.42.2\selenium-java-2.42.2.jar;C:\selenium-2.42.2\sel
enium-firefox-driver-2.42.2.jar" Test.java
C:\selenium-2.42.2>java Test
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/f
irefox/FirefoxDriver
at Test.main(Test.java:6)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.firefox.Firefox
Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
此外,以下信息将有所帮助:
java -version
得到了:
java版“1.8.0_05” Java(TM)SE运行时环境(版本1.8.0_05-b13) Java HotSpot(TM)64位服务器VM(内置25.5-b02,混合模式)
C:\Program Files (x86)\Mozilla Firefox>firefox.exe -v | more
Mozilla Firefox 30.0
也许这篇文章会被标记为重复,但我没有成功地遵循其他建议。你能否说明情况?
Here是我使用的jar
个文件。
谢谢!
PS: Win7 64位
答案 0 :(得分:2)
您的第一个命令javac
构建了类,但没有将依赖项嵌入到最终的jar文件中,这就是错误告诉您的内容:java.lang.NoClassDefFoundError。运行该类时,仍需要提供相同的依赖项。
javac -cp "C:\selenium-2.42.2\selenium-java-2.42.2.jar" Test.java
java -cp "C:\selenium-2.42.2\selenium-java-2.42.2.jar" Test
selenium-java.jar应该足够你的情况。看看这里的图片http://www.seleniumhq.org/download/maven.jsp,看看不同的硒罐是如何相互包含的。
我不相信你可以单独使用javac
将依赖项嵌入到最终的.jar中。你需要其他工具。