将json jar添加到classpath java中

时间:2012-10-03 10:27:37

标签: java json classpath

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

当我尝试使用

编译程序时
  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 个答案:

答案 0 :(得分:6)

-classpath一起运行时,您必须使用java

java -classpath json.jar MyClassName

答案 1 :(得分:2)

你犯了两个错误:

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

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

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

答案 2 :(得分:1)

错误的原因是,该类在编译期间出现并且让应用程序成功编译并成功链接但在运行时不可用。

java -classpath json.jar MyClassName (or)

java -cp json.jar MyClassName

答案 3 :(得分:0)

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

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