各位:现在需要用Delphi调用Jar包。我开始写了一个JAVA文件调用Jar的测试例子,运行正常。当在Delphi中通过JNI调用时,提示类找不到。我测试用的JAVA文件如下所示
import com.nsn.cloud.hive.jdbc.delphi.function.*; //需要引用的jar
public class Test1 {
public static void main(String[] args) {
System.out.println(DelphiJdbcInterface.getData("Wahaha",10));//调用Jar中DelphiJdbcInterface类的静态方法getData
}
}
我的delphi 代码如下所示 //我的工作目录是Y:\WorkSpace\JAVA\bin,Jar包和delphi可执行文件都在这里
options[0].optionString := '-Djava.compiler=NONE';
options[1].optionString := '-Djava.class.path=Y:\\WorkSpace\\JAVA\\bin\\com\\nsn\\cloud\\hive\\jdbc\\delphi\\function;Y:\\WorkSpace\\JAVA\\bin\\delphijdbc.jar';
options[2].optionString := '-verbose:jni';
JNI.JNI_GetDefaultJavaVMInitArgs(@vm_args);
vm_args.version := Jni.JNI_VERSION_1_4;
vm_args.options := @options;
vm_args.nOptions := 3;
vm_args.ignoreUnrecognized := Jni.JNI_TRUE;
rec := JNI.JNI_CreateJavaVM(@jvm, @env, @vm_args);
if (rec = JNI_ERR) then begin
writeln('不能创建 JVM');
end else begin
Result := true;
end; cid := env^.FindClass(env, 'DelphiJdbcInterface'); if cid=nil then
begin
writeln('查找类失败.'); //程序运行到这里退出
goto lexit;
end;
import com.nsn.cloud.hive.jdbc.delphi.function.*; //需要引用的jar
public class Test1 {
public static void main(String[] args) {
System.out.println(DelphiJdbcInterface.getData("Wahaha",10));//调用Jar中DelphiJdbcInterface类的静态方法getData
}
}
我的delphi 代码如下所示 //我的工作目录是Y:\WorkSpace\JAVA\bin,Jar包和delphi可执行文件都在这里
options[0].optionString := '-Djava.compiler=NONE';
options[1].optionString := '-Djava.class.path=Y:\\WorkSpace\\JAVA\\bin\\com\\nsn\\cloud\\hive\\jdbc\\delphi\\function;Y:\\WorkSpace\\JAVA\\bin\\delphijdbc.jar';
options[2].optionString := '-verbose:jni';
JNI.JNI_GetDefaultJavaVMInitArgs(@vm_args);
vm_args.version := Jni.JNI_VERSION_1_4;
vm_args.options := @options;
vm_args.nOptions := 3;
vm_args.ignoreUnrecognized := Jni.JNI_TRUE;
rec := JNI.JNI_CreateJavaVM(@jvm, @env, @vm_args);
if (rec = JNI_ERR) then begin
writeln('不能创建 JVM');
end else begin
Result := true;
end; cid := env^.FindClass(env, 'DelphiJdbcInterface'); if cid=nil then
begin
writeln('查找类失败.'); //程序运行到这里退出
goto lexit;
end;
解决方案 »
- 动态建立的PANEL的删除....
- IdTCPServer在传送文件的时候如何显示进度?
- 如何在程序执行过程中,能及时响应外部如鼠标、键盘等操作
- Corba+Ado 应用服务器端写了个方法(有参数),在客户端用CorbaConnection1.AppServer调用的时候,出现乱码,请教
- 一个非常奇怪的问题,那位帮我解决,另外开贴子给200分!
- 那么如何安装BDE,在那里可以找到!
- 窗体的最大化函数是什么呀!!
- 简单的问题,我很菜鸟。
- delphi中如何实现象金山网镖那样断开或连接网络!
- 也算新年送分,但是有点技术问题要请教:sybase公司的power designer如何与Delphi有机结合?
- 如何遞歸動態加載MainMenu菜單
- 初学Delphi做了几个简单东东
options[1].optionString := '-Djava.class.path=.;Y:\\WorkSpace\\Other\\JAVA_JNI\\bin\\delphijdbc.jar';cid := env^.FindClass(env, 'com/nsn/cloud/hive/jdbc/delphi/function/DelphiJdbcInterface');