首页 > 解决方案 > Javaagent 抛出 java.lang.NoClassDefFoundError: java/sql/PreparedStatement with java 15

问题描述

Java 代理在使用 java 15 应用程序运行时会抛出此错误,如果有人能解释为什么会出现这种情况,那将非常有帮助。

java.lang.NoClassDefFoundError: java/sql/PreparedStatement
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3325)
    at java.base/java.lang.Class.getDeclaredMethods(Class.java:2466)
.
.
.
.
.
Caused by: java.lang.ClassNotFoundException: java.sql.PreparedStatement
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 19 more

标签: javajavaagents

解决方案


这意味着 java.sql.PreparedStatement 在编译时可用,但在运行时不可用。
要解决此问题,请将 sql jar 添加到类路径中,如果您使用的是 maven,请在 pom.xml 中添加依赖项。


推荐阅读