NoClassDefFoundError: javax / json / bind / JsonbBuilder даже после добавления javaee-api в зависимости - PullRequest
0 голосов
/ 29 марта 2019

Я использую Maven с NetBeans. Всякий раз, когда я запускаю программу, она выдает исключение java.lang.NoClassDefFoundError даже после добавления javaee-api 8.0 к зависимостям.

Вот мой pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>example</groupId>
    <artifactId>JavaApp</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <build>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version>
        <configuration>
            <debug>false</debug>
        </configuration>
        </plugin>
    </plugins>
    </build>
    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>12</maven.compiler.source>
    <maven.compiler.target>12</maven.compiler.target>
    </properties>
    <dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>8.0</version>
        <scope>provided</scope>
    </dependency>
    </dependencies>
</project>

Я вижу javax.json.bind.* в Зависимостях. Я не понимаю, почему я не могу запустить программу. Есть указатели?

1 Ответ

3 голосов
/ 29 марта 2019

Проблема, с которой вы сталкиваетесь, заключается в том, что вам нужно вручную добавлять библиотеки, которые вы используете в своем проекте.Как вы сказали, javaee-api зависит от javax.json.bind.*, но область действия предоставляется , что означает, что он будет предоставлен вашим jdk или контейнером (например, сервером приложений) во время выполнения (для получения дополнительной информациипро объемы проверки это ).Таким образом, вам нужно добавить нужные библиотеки как compile scope (область по умолчанию), которые вам нужны во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...