如何修复java.lang.NoClassDefFoundError:com/google/inject/Abstrac



我使用 mvnw install 命令从 git 存储库 ([1]: https://github.com/Devskiller/jfairy.git( 构建了 jFairy 项目。 然后我已经将编译的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 中的异常: com/google/inject/AbstractModule at java.lang.ClassLoader.defineClass1(Native Method( at java.lang.ClassLoader.defineClass(ClassLoader.java:763( at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142( at java.net.URLClassLoader.defineClass(URLClassLoader.java:467( at java.net.URLClassLoader.access$100(URLClassLoader.java:73( at java.net.URLClassLoader$1.run(URLClassLoader.java:368( at java.net.URLClassLoader$1.run(URLClassLoader.java:362( at java.security.AccessController.doPrivileged(Native Method( at java.net.URLClassLoader.findClass(URLClassLoader.java:361( at java.lang.ClassLoader.loadClass(ClassLoader.java:424( at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349( at java.lang.ClassLoader.loadClass(ClassLoader.java:357( at com.devskiller.jfairy.Fairy.create(Fairy.java:54( at 用户道。UserDao.main(UserDao.java:29( 由以下原因引起: java.lang.ClassNotFoundException: com.google.inject.AbstractModule at java.net.URLClassLoader.findClass(URLClassLoader.java:381( at java.lang.ClassLoader.loadClass(ClassLoader.java:424( at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349( at java.lang.ClassLoader.loadClass(ClassLoader.java:357( ...还有 14 个 C:\Users\loveu\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: 返回的爪哇:1

如何解决这个问题。 谢谢

您可以在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>

您需要将包含此类的类或.jar文件添加到 Java 类路径中。

看看这个链接:-

线程 'main' java.lang.NoClassDefFoundError 中的异常:

最新更新