我对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
我犯了错误?
答案 0 :(得分:6)
与-classpath
一起运行时,您必须使用java
。
java -classpath json.jar MyClassName
答案 1 :(得分:2)
你犯了两个错误:
您在运行应用时忘记设置类路径:
java -classpath json.jar;. MyClassName
(假设您在Windows上,并且您在包含MyClassName.class
的目录中)。如果您使用的是Unix,请将;
替换为:
。
请注意,将类放在默认的root包中是不好的做法。
答案 2 :(得分:1)
错误的原因是,该类在编译期间出现并且让应用程序成功编译并成功链接但在运行时不可用。
java -classpath json.jar MyClassName (or)
java -cp json.jar MyClassName
答案 3 :(得分:0)
第一个输出是来自Java编译器的关于使用未经检查的代码(如原始集合)的警告。类文件已成功生成。
如果要修复这些警告,则可以使用-Xlint
命令行开关进行编译,并修复/禁止未检查/不安全警告。