2013-02-12 30 views
0

我試過四處搜尋,但找不到任何符合我個案的答案。爲什麼我的IDE找到JAR,但我的命令行不是?

我可以在使用IDE時運行CB.java文件。該文件依賴於cs2.jar中指定的類。這是它的目錄的內容。

02/12/2013 03:43 PM <DIR>   . 
02/12/2013 03:43 PM <DIR>   .. 
02/12/2013 03:45 PM    2,226 CB.class 
02/12/2013 01:21 PM    2,164 CB.java 
02/12/2013 03:43 PM   71,128 cs2.jar 
       3 File(s)   75,518 bytes 
       2 Dir(s) 408,977,362,944 bytes free 

當我從IDE上運行它時,CB.java工作得很好。然而,當我嘗試java CB在命令行中,我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: sn/visual/JRect 
angle 
Caused by: java.lang.ClassNotFoundException: sn.visual.JRectangle 
     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) 
Could not find the main class: CB. Program will exit. 

此外,我嘗試以下建議使用的東西添加到類路徑:

>java -cp C:\Users\...blah blah blah...\Software_Engineering cs2 
Exception in thread "main" java.lang.NoClassDefFoundError: cs2 
Caused by: java.lang.ClassNotFoundException: cs2 
     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) 
Could not find the main class: cs2. Program will exit. 

爲什麼我的IDE是聰明,但我命令行不是?

謝謝。

+0

你檢查你的classpath? Dot(「。」)是否添加到環境變量的類路徑條目中? Dot表示運行命令的當前目錄。如果將其添加到類路徑中,則每次運行該命令時都不需要包含「-cp」(假設jar文件也位於同一目錄中) – Slowcoder 2013-02-12 21:34:21

回答

0

我的IDE如何才智能,但我的命令行不是?

我懷疑在你的IDE中,你已經將jar文件包含在你的構建路徑中,所以它在構建和運行時都包含它。 (你沒有告訴我們它是哪個IDE,所以很難使用它使用的確切術語)

在命令行上,當你同時建立和運行時,你需要指定jar文件, d使用:

編譯:

javac -cp cs2.jar CB 

運行:

java -cp .;cs2.jar CB 
1

將類路徑設置爲只考慮給定目錄中的.class文件。您需要將jar文件添加到類路徑中:java -cp C:\somewhere\cs2.jar

+0

我剛進入'> java -classpath C:\ blahblahblah \ software_engineering (執行類) 或java [-options] -jar jarfile [args ...] (執行一個類jar文件) ................. etc ..................' – user1971506 2013-02-12 21:39:33

+0

'java -classpath C:\ blahblahblah \ software_engineering \ cs2.jar CB'將是完整的調用(您需要指定包含'main'方法的類,在您的情況下是CB)。 – 2013-02-12 21:41:40

相關問題