2015-01-03 118 views
1

我剛剛安裝了Java SDK 8,設置PATH和CLASSPATH變量,把javax.mail.jar文件放到bin目錄下,但是當我嘗試編譯我的問題時,所有的javax.mail類不株型識別:Class not recognized

C:\Java>javac SendMail.java 
SendMail.java:5: error: package javax.mail does not exist 
import javax.mail.Message; 

這裏是我的CLASSPATH變量的內容:

C:\Java>echo %CLASSPATH% 
C:\"Program Files"\Java\jdk1.8.0_25\lib;. 

這裏是bin目錄的內容:

C:\Java>dir C:\"Program Files"\Java\jdk1.8.0_25\lib\*.jar 
ant-javafx.jar 
dt.jar 
javafx-mx.jar 
javax.mail.jar 
jconsole.jar 
sa-jdi.jar 
tools.jar 

有什麼問題?

回答

0

類路徑應該包含單獨的JAR文件,而不是包含jar文件的目錄。另外lib目錄包含你通常不需要的東西。所以,你只想:

set CLASSPATH="C:\Program Files\Java\jdk1.8.0_25\lib\javax.mail.jar" 

而且您可以將java.exe命令行中添加類路徑:

java.exe -cp "C:\Program Files\Java\jdk1.8.0_25\lib\javax.mail.jar" SendMail 
+1

應該可以將其定義爲'PATH/*' - http://docs.oracle.com/javase/7/docs/technotes/tools/windows /classpath.html(*通配符*)。 –

+0

謝謝@PavelHoral - 所以是的,它似乎通配符是可能的。你每天都在學習。可能只適用於Java 6及更新版本。 – geert3

+0

我刪除了引號,並指向javax.mail.jar文件,它工作! –

0

(我沒有檢查我自己,但是......)

c:\"Program Files"\something沒有按對我來說,這似乎不是一條好路。

嘗試設置CLASSPATH到:

"C:\Program Files\Java\jdk1.8.0_25\lib";. 
+0

Windows不會將空格識別爲路徑中的有效字符,因此您必須在命令提示符中使用引號。但是也許這個規則不適用於在環境變量中定義的路徑。 –