我是Java新手。我想在命令行上运行Java Unit测试,并最终从PHP脚本运行它。我的代码片段如下:
package com.src.test;
import java.io.File;
import java.io.FileWriter;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import com.thoughtworks.selenium.Selenium;
public class First {
......
}
Windows上的上述文件的完整路径是
D:\Users\XXX\workspace\SeleniumTest\bin\com\src\test
当我将目录更改为bin并运行java com.src.test.First
时,我收到一条错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver
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)
... 6 more
我做错了什么?我已尝试运行java com.src.test.First.class
,但收到错误Error: Could not find or load main class com.src.test.First.class
答案 0 :(得分:1)
您应该使用-d
选项编译代码,以指定编译文件的放置位置。
如果你已经这样做了,你需要落后于.\com
。如果不是,则应使用-cp
选项运行,显示文件的位置。如果你落后.\bin
,它应该是这样的:
java -cp .\bin com.src.test.First
此外,您不应在课程名称后面写.class
。
修改:
当我说你需要落后于.\something
时,我的意思是你应该在包含文件夹“something”的目录中。此外,当目录不在java类路径中时,您只需要使用-cp
指定额外的类路径。您始终可以将其添加到环境变量CLASSPATH
中。有关此主题的更多信息here