为什么我的IDE找到JAR,但我的命令行不? [英] Why does my IDE find the JAR but my command line doesn't?

查看:97
本文介绍了为什么我的IDE找到JAR,但我的命令行不?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我可以运行文件CB.java只是当我使用IDE。此文件取决于在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文件75,518字节
2目录408,977,362,944字节免费

当我运行它的IDE,CB.java工作正常。但是,当我在命令行中尝试 java CB 时,我得到:

 线程main中的异常java.lang.NoClassDefFoundError:sn / visual / JRect 
angle
引发者:java.lang.ClassNotFoundException:sn.visual.JRectangle
at java.net .URLClassLoader $ 1.run(未知源)
在java.security.AccessController.doPrivileged(本地方法)
在java.net.URLClassLoader.findClass(未知源)
在java.lang。 ClassLoader.loadClass(未知源)
at sun.misc.Launcher $ AppClassLoader.loadClass(未知源)
at java.lang.ClassLoader.loadClass(未知源)
找不到main类:CB。程序将退出。

此外,我尝试以下建议使用以下方式向类路径添加内容:

 > java -cp C:\Users \ ... blah blah blah ... \Software_Engineering cs2 
线程中的异常 mainjava.lang.NoClassDefFoundError:cs2
引发者:java.lang.ClassNotFoundException:cs2
在java.net.URLClassLoader $ 1.run(未知源)
在java.security.AccessController 。$ PHP $ b $ java.lang.ClassLoader.loadClass(未知来源)
at sun.misc.Launcher $ AppClassLoader(未知来源)
在java.net.URLClassLoader.findClass .loadClass(未知源)
at java.lang.ClassLoader.loadClass(未知源)
找不到主类:cs2。程序将退出。

我的IDE如何聪明,但我的命令行不?



谢谢。

解决方案


我的命令行不是?


我怀疑在你的IDE中,你的jar文件包含在你的构建路径,然后包括它,当建设和运行。 (你没有告诉我们它是哪个IDE,所以很难使用它使用的确切术语)



在命令行上,你需要指定jar文件时,建立和运行太,所以你会使用:



建立:

  javac -cp cs2.jar CB 

执行:

  java -cp。; cs2.jar CB 


I've tried searching around, but I couldn't find any answers that fit my case.

I can run the file CB.java just fine when I use an IDE. This file depends on classes specified in cs2.jar. Here are the contents of its directory.

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

When I run it off my IDE, CB.java works just fine. However, when I try java CB in the command line, I get:

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.

Furthermore, I tried following suggestions to add something to the classpath using:

>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.

How come my IDE is smart but my command line isn't?

Thank you.

解决方案

How come my IDE is smart but my command line isn't?

I suspect in your IDE, you've included the jar file in your build path, so it then includes it when both building and running. (You haven't told us which IDE it is, so it's hard to use the exact terminology it would use)

On the command line, you need to specify the jar file when both building and running too, so you'd use:

To build:

javac -cp cs2.jar CB

To run:

java -cp .;cs2.jar CB

这篇关于为什么我的IDE找到JAR,但我的命令行不?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆