有一在 IDEA 编写的 Maven 项目,通过 pom.xml
添加依赖后依然运行提示 java.lang.ClassNotFoundException
,询问 ChatGPT 后得到解决方案,遂记录。
解决方案
点击右侧 Maven
选卡,双击打开项目名,双击选择 Lifecycle
下的 install
,即可。
亦可打开下方 Terminal
选卡,运行命令
mvn install
背景
在 IDEA 里 File
- Project Structure...
窗口添加 Maven 依赖,运行 Java Web 项目,报错:
例外情况
jakarta.servlet.ServletException: Servlet执行抛出一个异常
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
根本原因。
java.lang.NoClassDefFoundError: com/google/gson/JsonObject
com.example.webstudy.ReturnJSON.doGet(ReturnJSON.java:24)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:668)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:777)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
根本原因。
java.lang.ClassNotFoundException: com.google.gson.JsonObject
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1449)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1257)
com.example.webstudy.ReturnJSON.doGet(ReturnJSON.java:24)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:668)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:777)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
询问 ChatGPT,得到如下回复:
如果你使用了 Maven,那么需要先在 pom.xml 文件中添加 Gson 的依赖。
<dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.9</version> </dependency> </dependencies>
然后,你需要重新构建你的 Maven 项目,让 Maven 下载并安装依赖库。
在 IDEA 中,你可以在右侧的 Maven 选项卡中找到 Lifecycle,在其中找到 install,右键点击运行,或者直接在命令行中运行 mvn install,让 Maven 安装依赖。这样做后,IDEA 应该就能找到 com.google.gson.JsonObject 这个类了。