Как исправить ошибку java.lang.NoClassDefFoundError: com / google / inject / AbstractModule в jFairy - PullRequest
0 голосов
/ 17 сентября 2018

Я создал проект jFairy из репозитория git ([1]: https://github.com/Devskiller/jfairy.git) с помощью команды установки mvnw Затем я импортировал скомпилированный файл JAR в мой проект.

package userdao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
import com.devskiller.jfairy.Fairy;
import com.devskiller.jfairy.producer.person.Person;
import userdao.User;
/**
 *
 * @author loveu
 */
public class UserDao {

    /**
     * @param args the command line arguments
     * @throws java.lang.ClassNotFoundException
     * @throws java.sql.SQLException
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        UserDao dao = new UserDao();
        User user = new User();
        Fairy fairy = Fairy.create();
        Person person = fairy.person();
        user.setId(person.getFullName());
        user.setName(person.getFirstName());
        user.setPassword(person.getEmail());
        dao.add(user);
        System.out.println(user.getId() + "successfuly");
        User  user2 = dao.get(user.getId());
        System.out.println(user2.getName());
        System.out.println(user2.getPassword());       

        // TODO code application logic here
    }    

но во время компиляции я получил эту ошибку

run: Исключение в потоке "main" java.lang.NoClassDefFoundError: ru / google / inject / AbstractModule на java.lang.ClassLoader.defineClass1 (собственный метод) в java.lang.ClassLoader.defineClass (ClassLoader.java:763) в java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142) на java.net.URLClassLoader.defineClass (URLClassLoader.java:467) на java.net.URLClassLoader.access $ 100 (URLClassLoader.java:73) в java.net.URLClassLoader $ 1.run (URLClassLoader.java:368) в java.net.URLClassLoader $ 1.run (URLClassLoader.java:362) в java.security.AccessController.doPrivileged (собственный метод) в java.net.URLClassLoader.findClass (URLClassLoader.java:361) в java.lang.ClassLoader.loadClass (ClassLoader.java:424) в sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:349) в java.lang.ClassLoader.loadClass (ClassLoader.java:357) в com.devskiller.jfairy.Fairy.create (Fairy.java:54) в userdao.UserDao.main (UserDao.java:29) Причина: java.lang.ClassNotFoundException: com.google.inject.AbstractModule at java.net.URLClassLoader.findClass (URLClassLoader.java:381) в java.lang.ClassLoader.loadClass (ClassLoader.java:424) в sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:349) в java.lang.ClassLoader.loadClass (ClassLoader.java:357) ... еще 14 C: \ Users \ loveu \ AppData \ Local \ NetBeans \ Cache \ 8.2 \ исполнитель-сниппеты \ run.xml: 53: Java вернула: 1

Как это исправить. Спасибо

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Вы можете найти информацию о необходимых библиотеках внутри pom.xml, гораздо проще использовать такие инструменты, как Apache Maven, для создания Java-приложений.

    <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.20</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>3.6.1</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>24.0-jre</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>4.2.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-assistedinject</artifactId>
        <version>4.2.0</version>
    </dependency>
0 голосов
/ 17 сентября 2018

вам нужно добавить класс или файл .jar, который содержит этот класс, в путь к классам java.

Посмотрите по этой ссылке: -

исключение в потоке 'main' java.lang.NoClassDefFoundError:

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