2

我对 Java 世界很陌生。我想添加 Json 库来编译我的程序。我从这里下载了文件。

当我试图用

  javac -classpath json.jar MyClassName.java

我收到错误:

Note: JsonSimpleExample.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

当我尝试运行时:

java MyClassName

我越来越:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/JSONObject
    at MyClassName.main(MyClassName.java:9)
Caused by: java.lang.ClassNotFoundException: org.json.simple.JSONObject
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 1 more

我在哪里犯错误?

4

4 回答 4

6

你也必须-classpath在运行时使用java

java -classpath json.jar MyClassName
于 2012-10-03T10:30:03.880 回答
2

你犯了两个错误:

  1. 您从编译器获得的消息是注释,而不是编译错误。按照说明获取详细信息
  2. 运行应用程序时忘记设置类路径:

    java -classpath json.jar;. MyClassName
    

(假设您在 Windows 上,并且您在包含 的目录中MyClassName.class)。如果您使用的是 Unix,请将 替换;:.

请注意,将类放在默认的根包中是不好的做法。

于 2012-10-03T10:32:05.523 回答
1

错误的原因是,该类在编译时存在,让我们的应用程序成功编译并成功链接,但在运行时不可用。

java -classpath json.jar MyClassName (or)

java -cp json.jar MyClassName
于 2012-10-03T10:34:48.223 回答
0

第一个输出是来自 Java 编译器的关于使用未经检查的代码(如原始集合)的警告。类文件将已成功生成。

如果要修复这些警告,则可以使用-Xlint命令行开关进行编译并修复/抑制未检查/不安全的警告。

于 2012-10-03T10:31:55.197 回答