为什么我的 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是智能的,而我的命令行不是?

谢谢。

类路径设置为只考虑给定目录中的.class文件。您需要将jar文件添加到类路径:java -cp C:somewherecs2.jar

为什么我的IDE是智能的,而我的命令行不是?

我怀疑在您的IDE中,您已经在构建路径中包含了jar文件,因此它在构建和运行时都会包含它。(你还没有告诉我们它是哪个IDE,所以很难使用它会使用的确切术语)

在命令行上,在构建和运行时也需要指定jar文件,因此您可以使用:

构建:

javac -cp cs2.jar CB

要运行:

java -cp .;cs2.jar CB

最新更新