我有一个简单的 Java 项目,我想在其中构建 Json 字符串。为此,我使用 javax.json:
import javax.json.Json;
import javax.json.JsonObjectBuilder;
public class MyClass {
public void MyFunc() {
JsonObjectBuilder myBuilder = Json.createObjectBuilder(); # this line will trigger the exception
// And some other code
}
}
该项目是使用maven构建的,并且在pom中我添加了这些依赖项:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
</dependency>
</dependencies>
编译没问题。
当我使用该命令执行代码时:
java -cp target/classes MyClass
主要在MyClass中。我得到:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/json/Json
[...]
Caused by: java.lang.ClassNotFoundException: javax.json.Json
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:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more
在调用 Json.createObjectBuilder() 时。
如果您在目标文件夹中运行它,症状是相同的:
java MyClass
我已检查我的 ~/.m2/repository 文件夹,并且有 javax/json/javax.json-api/1.0/javax.json-api-1.0.jar。当我解压它时,我可以看到 Json.class 文件。
怎么了 ???
类路径没有 javax.json-api-1.0.jar。
像这样运行它:
java -cp 目标/类:~/.m2/repository/javax/json/javax.json-api/1.0/javax.json-api-1.0.jar MyClass
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)