Java 在运行时加载类

Java 在运行时加载类,java,ikvm,Java,Ikvm,我有一些在运行时加载类的代码: Class.forName("oracle.jdbc.driver.OracleDriver"); 但这和IKVM似乎存在问题——我想知道是否有其他方法可以在我的Java程序中实现上述功能,或者是否有人知道为什么这可能会导致IKVM发布 谢谢 对不起,我不知道怎么找到,我花了好长时间才走到这一步!这是在Exception e catch语句中捕获的,我很确定它是由上面发布的行抛出的 classname IKVM.NativeCode.java.lang.Clas

我有一些在运行时加载类的代码:

Class.forName("oracle.jdbc.driver.OracleDriver");
但这和IKVM似乎存在问题——我想知道是否有其他方法可以在我的Java程序中实现上述功能,或者是否有人知道为什么这可能会导致IKVM发布

谢谢

对不起,我不知道怎么找到,我花了好长时间才走到这一步!这是在Exception e catch语句中捕获的,我很确定它是由上面发布的行抛出的

classname IKVM.NativeCode.java.lang.Class文件名空方法名 forName0行号-1 classname java.lang.Class Filename Class.java 方法名称forName0行号-2 classname java.lang.Class文件名 Class.java方法名forName行号287 classname测试文件名 Test.java方法名init行号50 classname测试文件名 Test.java方法名isPDFAvailable行号24 classname cli.analysis_Report.Form1文件名Form1.cs方法名hasGains 行号296 classname cli.analysis_Report.Form1 Filename Form1.cs方法名称确定可用数据行号209类名称 cli.analysis_Report.Form1文件名Form1.cs方法名称文件 行号71 classname cli.Analytical_Report.Form1文件名Form1.cs 方法名称BTN选择文件\单击行号49类名称 cli.System.Windows.Forms.Control Filename空方法名OnClick 行号-1 classname cli.System.Windows.Forms.Button文件名null 方法名称OnClick行号-1 classname cli.System.Windows.Forms.Button文件名空方法名OnMouseUp 行号-1类名称cli.System.Windows.Forms.Control文件名 空方法名WmMouseUp行号-1类名 cli.System.Windows.Forms.Control文件名null方法名WndProc 行号-1类名称cli.System.Windows.Forms.ButtonBase文件名 空方法名称WndProc行号-1类名称 cli.System.Windows.Forms.Button文件名null方法名WndProc行 第1类名称 cli.System.Windows.Forms.Control$ControlNativeWindow文件名null 消息行号上的方法名称-1类名称 cli.System.Windows.Forms.Control$ControlNativeWindow文件名null 方法名称WndProc行号-1类名称 cli.System.Windows.Forms.NativeWindow文件名空方法名 DebuggableCallback行号-1类名称 cli.System.Windows.Forms.UnsafeNativeMethods文件名null方法名 DispatchMessageW行号-1类名称 cli.System.Windows.Forms.Application$ComponentManager文件名null 方法名 System.Windows.Forms.UnsafentiveMethods.IMsoComponentManager.FPushMessageLoop 行号-1类名称 cli.System.Windows.Forms.Application$ThreadContext文件名null 方法名称RunMessageLoopInner行号-1类名称 cli.System.Windows.Forms.Application$ThreadContext文件名null 方法名称RunMessageLoop行号-1类名称 cli.System.Windows.Forms.Application文件名null方法名运行 行号-1 classname cli.analysis_Report.Program Filename Program.cs方法名称主线编号18类名称 cli.System.AppDomain Filename null方法名称\u nexecuteasembly行 编号-1 classname cli.System.AppDomain文件名空方法名 ExecuteAssembly行号-1类名称 cli.Microsoft.VisualStudio.HostingProcess.HostProc文件名null 方法名称RunUsersAssembly行号-1


这是我第一次听说ikvm,但我会尽力帮助你

首先,加载JDBC驱动程序的另一种方法是使用

DriverManager.registerDriver(新的oracle.jdbc.driver.OracleDriver())

无论如何,我在ikvm网站上读到,您必须使用命令ikvmc将JAR转换为DLL。您是否已经将Oracle驱动程序JAR转换为DLL?还有:你确定你已经使这个JAR/DLL中的类对程序可用了吗?(Java类路径的任何等价物)


希望有帮助

您可以查看或更好地描述您的问题。

不同的数据库格式和JDBC驱动程序,但只需对oracle和oracle驱动程序稍作修改即可(为了清晰起见,请使用完整的名称空间):


“似乎是问题”到底是什么意思?您是否遇到异常?是否可能您没有编译(转换后的名称是否正确?)包含OracleDriver的jar?我如何判断是否是这种情况?
java.lang.Class.forName(typeof(org.hsqldb.jdbcDriver).AssemblyQualifiedName);
java.sql.DriverManager.registerDriver(new org.hsqldb.jdbcDriver());
conn = java.sql.DriverManager.getConnection(url, username, password);