2011-08-03 6 views
0

에서 클래스를로드 I가 런타임에 클래스를로드하는 코드 :런타임

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

그러나이 및 iKVM을에 문제가있을 것 같습니다 - 위 달성 (를) 대체 할 수있는 다른 방법이 있다면 궁금 해서요 내 Java 프로그램에서 또는 ikvm에서 발행 된 이유를 알고있는 사람이 있습니까?

감사

미안 - 난이 지금까지 얻을 수있는, 그 촬영 저 연령을 찾는 방법에는 일부러 없습니다! 이 예외 전자 catch 문에 걸려 내가 확신의

클래스 명 IKVM.NativeCode.java.lang.Class 파일 이름 널 (null) 방법 이름 forName0 줄 수 -1 클래스 명 자바 위에 게시 된 선으로 발생합니다. lang.Class 파일 이름 Class.java 메소드 이름 forName0 행 번호 -2 클래스 이름 java.lang.Class 파일 이름 Class.java 메소드 이름 forName 행 번호 287 classname 테스트 파일 이름 Test.java 메소드 이름 init 행 번호 50 클래스 이름 테스트 파일 이름 테스트 .java 메소드 이름은 isPDFAvailable 행 번호 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 라인 번호 49 클래스 이름 cli.System.Windows.Forms.Control 파일 이름 null 메서드 이름 OnClick 줄 번호 -1 classname cli.System.Windows.Forms.Button 파일 이름 null 메서드 이름 OnClick 줄 번호 -1 클래스 이름 cli.System.Windows .Forms.Button 파일 이름 null 메서드 이름 OnMouseUp 줄 번호 -1 classname cli.System.Windows.Forms.Control 파일 이름 null 메서드 이름 WmMouseUp 줄 번호 -1 clas sname cli.System.Windows.Forms.Control 파일 이름 null 메서드 이름 WndProc 줄 번호 -1 classname cli.System.Windows.Forms.ButtonBase 파일 이름 null 메서드 이름 WndProc 줄 번호 -1 클래스 이름 cli.System.Windows.Forms .Button 파일 이름 null 메서드 이름 WndProc 줄 숫자 -1 클래스 이름 cli.System.Windows.Forms.Control $ ControlNativeWindow 파일 이름 null 메서드 이름 OnMessage 줄 번호 -1 클래스 이름 cli.System.Windows.Forms.Control $ ControlNativeWindow 파일 이름 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 클래스 이름 cli.System.Windows.Forms.Application 파일 이름 null 메서드 이름 Run 줄 번호 -1 classname cli.Analytical_Rep ort.Program Filename 프로그램.CS 방법 이름 본선 18 번 클래스 명 cli.System.AppDomain 파일 이름 널 (null) 방법 이름 _nExecuteAssembly 라인 수 -1 클래스 명 cli.System.AppDomain 파일 이름 널 (null) 방법 이름 ExecuteAssembly 행 번호 -1 클래스 이름 cli.Microsoft.VisualStudio.HostingProcess. HostProc 파일 이름 널 방법 이름 RunUsersAssembly 행 번호는 -1

+3

"이 문제가 될 것"이라 ** 어떤 * 정확히? 예외가 있습니까? –

+0

OracleDriver가 포함 된 jar 파일을 컴파일하지 않은 것 (IKVM의 올바른 용어로 변환 되었습니까?)이 가능합니까? –

+0

어떻게 그 사건이 사실인지 아닌지를 말할 수 있습니까? – rik

답변

1

내가 iKVM을 듣고 처음이다,하지만 난 도움을 시도합니다.

첫째, JDBC 드라이버를로드하는 또 다른 방법은 어쨌든, 난 당신이 명령 ikvmc을 사용하여 DLL을에 JAR 파일을 변환해야 iKVM을 웹 사이트에 읽고

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

함께. 이미 Oracle 드라이버 JAR을 DLL로 변환 했습니까? 그리고이 JAR/DLL의 클래스를 프로그램에서 사용할 수있게 만들었습니까? (Java 클래스 패스에 상응하는 것이 무엇이든)

희망이 있습니다!

1

다른 데이터베이스 형식 및 JDBC 드라이버하지만 오라클과 오라클 드라이버에 대한 약간의 수정과 함께 당신을 위해 일한다 (명확성을 위해 전체 네임 스페이스) :

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