gpt4 book ai didi

java - JDBC DriverManager 无法访问不同包中的类

转载 作者:行者123 更新时间:2023-11-30 10:57:10 25 4
gpt4 key购买 nike

我一直在尝试检测 getconnection 方法以获取在 JDBC 连接建立期间传递的 DB_URL。据我所知,DriverManager 的检测工作正常,因为注入(inject)部分工作正常而不会引发任何异常。但是当涉及到执行该行时,在我的例子中调用我定义的包中类的 public static void 方法,它说

Exception in thread "main" java.lang.NoClassDefFoundError: testInjection/TestClass
at java.sql.DriverManager.getConnection(DriverManager.java:206)
at testInstrumentation.TestConnector.main(TestConnector.java:30)

但同样的注入(inject)对其他类来说效果很好。小帮助将不胜感激。

这就是我在检测期间注入(inject)的内容。

method.insertAt(1, true, "testInjection.TestClass.setConnetionURL($1);");

最佳答案

您向系统类加载器加载的 java.sql.DriverManager 类添加了一个方法调用。引导类加载器看不到由它作为父级的系统类加载器加载的任何类。

要解决此问题,您需要将 testInjection.TestClass 添加到引导类加载器。您可以通过设置命令行值 -Xbootclasspath 来引用带有此类的 jar 文件,或者通过使用代理的 Instrumentation 实例以编程方式执行此操作。

关于java - JDBC DriverManager 无法访问不同包中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32732317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com