我试过四处搜寻,但找不到符合我个人要求的答案。
当我使用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 :(得分:1)
类路径设置为仅考虑给定目录中的.class
个文件。您需要将jar文件添加到类路径:java -cp C:\somewhere\cs2.jar
答案 1 :(得分:0)
为什么我的IDE很聪明但我的命令行不是?
我怀疑在您的IDE中,您已将jar文件包含在构建路径中,因此它在构建和运行时都包含它。 (你还没有告诉我们它是哪个IDE,所以很难使用它会使用的确切术语)
在命令行中,您需要在构建和运行时指定jar文件,因此您将使用:
构建:
javac -cp cs2.jar CB
运行:
java -cp .;cs2.jar CB