2014-01-31 177 views
0

我是Java新手。我想在命令行上運行Java單元測試,並最終從PHP腳本運行它。我的代碼片段如下無法從命令行運行Java單元測試代碼

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

+1

如果找不到類,則必須將一些類添加到類路徑中。 –

+0

[通過命令行運行Java代碼時出現問題]可能的重複(http://stackoverflow.com/questions/2752485/problem-running-java-code-through-command-line) –

回答

1

您應該使用-d選項編譯代碼以指定編譯文件的放置位置。

如果您已經完成了這項工作,則需要落後於.\com。如果你不是,你應該運行-cp選項,顯示你的文件在哪裏。如果你是落後.\bin它應該是這樣的:

java -cp .\bin com.src.test.First 

而且,你不應該寫你的類名後.class


編輯

當我說你需要背後.\something,我的意思是你應該在包含文件夾「東西」的目錄。另外,當目錄不在java類路徑中時,只需要用-cp指定額外的類路徑。您始終可以將其添加到環境變量CLASSPATH。有關此主題的更多信息here


+0

如何在我添加庫時添加庫運行程序? – user1801060

+0

如果您有一些不在CLASSPATH中的庫,可以創建一個文件夾來存儲您的庫並將此文件夾添加到CLASSPATH中。但我建議你在Eclipse或NetBeans等環境中編寫程序。 – jcmonteiro