java.lang.NoClassDefFoundError:javax/json/Json [英] java.lang.NoClassDefFoundError: javax/json/Json

查看:537
本文介绍了java.lang.NoClassDefFoundError:javax/json/Json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的Java项目,我想在其中构建一个Json字符串.为此,我使用javax.json:

I have a simple Java project where I would like to build a Json string. For this, I use 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中,我添加了以下依赖项:

The project is build with maven, and in the pom I have added these dependencies:

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

编译正常. 当我使用该命令执行代码时:

Compilation is ok. When I execute the code using that command:

java -cp target/classes MyClass

主要在MyClass中.我得到:

The main is in MyClass. I get:

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()的调用.

on the call to Json.createObjectBuilder().

如果在targer文件夹中运行它,症状是相同的:

Symptom is the same if you run it in the targer folder like that:

java MyClass

我已经检入〜/.m2/repository文件夹,并且具有javax/json/javax.json-api/1.0/javax.json-api-1.0.jar.解压缩后,可以看到Json.class文件.

I have checked in my ~/.m2/repository folder and i have javax/json/javax.json-api/1.0/javax.json-api-1.0.jar. When I unzip it, I can see the Json.class file.

怎么了???

推荐答案

classpath没有javax.json-api-1.0.jar. 像这样运行它:

The classpath does not have the javax.json-api-1.0.jar. Run it like this:

java -cp target/classes:〜/.m2/repository/javax/json/javax.json-api/1.0/javax.json-api-1.0.jar MyClass

java -cp target/classes:~/.m2/repository/javax/json/javax.json-api/1.0/javax.json-api-1.0.jar MyClass

这篇关于java.lang.NoClassDefFoundError:javax/json/Json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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