2011-08-03 53 views
0

加載類的我有一些它加載的類在運行時代碼:在運行時

Class.forName("oracle.jdbc.driver.OracleDriver"); 

但似乎與此和IKVM問題 - 我想知道是否有任何其他的方式來實現上述在我的Java程序中,或者如果有人知道爲什麼這可能會導致與ikvm發佈?

感謝

對不起 - 我沒有沒有怎麼找出來,它採取了年齡走這麼遠!這是夾在例外五catch語句和我敢肯定它通過上述

類名IKVM.NativeCode.java.lang.Class文件名null方法名 forName0行號-1類名的Java貼線拋出。 lang.Class文件名Class.java 方法名稱forName0行號-2類名java.lang.Class文件名 Class.java方法名稱forName行號287 classname測試文件名 Test.java方法名稱init行號50 classname測試文件名 測試.java方法名稱爲PDFAvailable行號24類名稱 cli.Analytical_Report.Form1文件名Form1.cs方法名稱hasGains 行號296類名cli.Analytical_Report.Form1文件名 Form1.cs的方法名稱determineAvailableData行號209類名 cli.Analytical_Report.Form1名Form1.cs的方法名稱consumeFile 行號71類名cli.Analytical_Report.Form1名Form1.cs的 方法名稱btnSelectFile_Click線number 49 classname cli.System.Windows.Forms.Control Filename null方法名稱OnClick 行號-1 classname cli.System.Windows.Forms.Button文件名null 方法名稱OnClick行號-1類名 cli.System.Windows .Forms.Button Filename null方法名稱OnMouseUp 行號-1類名cli.System.Windows.Forms.Control文件名 null方法名稱WmMouseUp行號-1 clas sname cli.System.Windows.Forms.Control Filename null方法名WndProc 行號-1類名cli.System.Windows.Forms.ButtonBase文件名 null方法名WndProc行號-1類名 cli.System.Windows.Forms .Button Filename null方法名稱WndProc行 number -1 classname cli.System.Windows.Forms.Control $ ControlNativeWindow Filename null 方法名稱OnMessage行號-1類名 cli.System.Windows.Forms.Control $ ControlNativeWindow Filename null 方法名稱WndProc行號-1類名稱 cli.System.Windows.Forms.NativeWindow文件名null方法名稱 DebuggableCallback行號-1類名 cli.System.Windows.Forms.UnsafeNativeMethods文件名null方法名 DispatchMessageW行號-1類名 cli.System.Windows.Forms.Application $的ComponentManager名空 方法名稱 System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop 行號-1類名 cli.System.Windows.Forms.Application $ ThreadContext名空 方法名稱RunMessageLoopInner行號-1類名 cli.System.Windows.Forms.Application $ ThreadContext名空 方法名稱RunMessageLoop行號 - 1 classname cli.System.Windows.Forms.Application Filename null方法名稱運行 行號-1 classname cli.Analytical_Rep ort.Program Filename Program。CS方法名稱主線數18類名 cli.System.AppDomain文件名null方法名_nExecuteAssembly線 號-1類名cli.System.AppDomain文件名null方法名 ExecuteAssembly行號-1類名 cli.Microsoft.VisualStudio.HostingProcess。 HostProc Filename null 方法名稱RunUsersAssembly行號-1

+3

「似乎是問題」是指什麼** * *完全?你有例外嗎? –

+0

是否有可能你沒有編譯(將轉換爲IKVM的正確名詞?)包含OracleDriver的jar? –

+0

我怎麼能不知道如果是這樣的情況? – rik

回答

1

這是我第一次聽說ikvm,但我會盡力幫忙。

首先,另一種方式來加載JDBC驅動程序與

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

無論如何,我在IKVM網站,你有你的JAR文件轉換爲使用命令ikvmc的DLL已經閱讀。您是否已經將Oracle驅動程序JAR轉換爲DLL?並且:你確定你已經使這個JAR/DLL中的類可用於該程序嗎? (不管什麼對於Java類路徑都是相同的)

希望有幫助!

1

不同的數據庫格式和JDBC驅動程序,但它會爲你工作與Oracle和Oracle驅動程序稍加修改(爲了清晰起見,全命名空間):

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);