注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

delphi调用java代码  

2014-09-25 22:59:59|  分类: delphixe7 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  1. unit Unit1;  
  2.   
  3. interface  
  4.   
  5. uses  
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  7.   Dialogs, StdCtrls,jni;  
  8.   
  9. type  
  10.   TForm1 = class(TForm)  
  11.     Button1: TButton;  
  12.     Edit1: TEdit;  
  13.     Label1: TLabel;  
  14.     procedure Button1Click(Sender: TObject);  
  15.   private  
  16.     { Private declarations }  
  17.   public  
  18.     { Public declarations }  
  19.   end;  
  20.   
  21. var  
  22.   Form1: TForm1;  
  23.   
  24. implementation  
  25.   
  26. {$R *.dfm}  
  27.   
  28. procedure TForm1.Button1Click(Sender: TObject);  
  29. var  
  30.   vm_args: Jni.JavaVMInitArgs;  
  31.   options: array[0..2of Jni.JavaVMOption;  
  32.   jvm: Jni.PJavaVM;  
  33.   env: Jni.PJNIEnv;  
  34.   rec: Integer;  
  35.   cid: Jni.JClass;  
  36.   mid: Jni.JMethodID;  
  37.   tmp: Jni.JString;  
  38.   tenv: Jni.TJNIEnv;  
  39. begin  
  40.   options[0].optionString := '-Djava.compiler=NONE';  
  41.   options[1].optionString := '-Djava.class.path=.;C:\Documents and Settings\Administrator\桌面\1111';  
  42.  // options[1].optionString := '-Djava.class.path=.;C:\Documents and Settings\Administrator\桌面\1111' ;  
  43. {  options[1].optionString := '-Djava.class.path=.;c:\\;.\\CDemo\\bin;.\\lib\\Aa1.jar;.\\lib\\antlr-2.7.6.jar;.\\lib\\asm.jar;.\\lib\\asm-attrs.jar;.\\lib\\cglib-'+ 
  44.                              '2.1.3.jar;.\\lib\\charsets.jar;.\\lib\\commons-beanutils-1.7.0.jar;.\\lib\\commons-codec-1.3.jar;.\\lib\\commons-collections-2.1.1.jar;.\\lib\\commons-collections-'+ 
  45.                              '3.2.jar;.\\lib\\commons-dbcp-1.2.1.jar;.\\lib\\commons-httpclient-3.0.jar;.\\lib\\commons-io-1.3.2.jar;.\\lib\\commons-lang-2.0.jar;.\\lib\\commons-'+ 
  46.                              'logging.jar;.\\lib\\commons-logging-1.0.4.jar;.\\lib\\commons-pool-1.2.jar;.\\lib\\dnsns.jar;.\\lib\\dom4j-1.6.1.jar;.\\lib\\ehcache-1.2.3.jar;.\\lib\\ejb3-'+ 
  47.                              'persistence.jar;.\\lib\\ezmorph-1.0.5.jar;.\\lib\\freemarker-2.3.8.jar;.\\lib\\hibernate3.jar;.\\lib\\hibernate-annotations.jar;.\\lib\\hibernate-commons-'+ 
  48.                              'annotations.jar;.\\lib\\hibernate-entitymanager.jar;.\\lib\\hibernate-validator.jar;.\\lib\\jaas.jar;.\\lib\\jacob.jar;.\\lib\\javassist.jar;.\\lib\\jaxen-1.1-beta-'+ 
  49.                              '7.jar;.\\lib\\jboss-archive-browsing.jar;.\\lib\\jce.jar;.\\lib\\jdom-1.0.jar;.\\lib\\json-lib-2.3-jdk15.jar;.\\lib\\jsonplugin-0.32.jar;.\\lib\\jsse.jar;.\\lib\\jstl-'+ 
  50.                              '1.2.jar;.\\lib\\jta.jar;.\\lib\\junit.jar;.\\lib\\localedata.jar;.\\lib\\log4j-1.2.11.jar;.\\lib\\log4j-1.2.14.jar;.\\lib\\mysql-connector-java-5.0.8-'+ 
  51.                              'bin.jar;.\\lib\\mysql-connector-java-5.1.10-bin.jar;;.\\lib\\ognl-'+ 
  52.                              '2.6.11.jar;.\\lib\\org.eclipse.swt.win32.win32.x86_3.5.2.v3557f.jar;.\\lib\\pinyin4j-2.5.0.jar;.\\lib\\resources.jar;.\\lib\\rt.jar;.\\lib\\servlet-'+ 
  53.                              'api.jar;.\\lib\\spring.jar;.\\lib\\spring-1.2.6.jar;.\\lib\\struts2-core-2.0.6.jar;.\\lib\\struts2-spring-plugin-'+ 
  54.                              '2.0.6.jar;.\\lib\\sunjce_provider.jar;.\\lib\\sunmscapi.jar;.\\lib\\sunpkcs11.jar;.\\lib\\xbean-2.2.0.jar;.\\lib\\xbean-spring-2.8.jar;.\\lib\\xerces-'+ 
  55.                              '2.6.2.jar;.\\lib\\xml-apis.jar;.\\lib\\xwork-2.0.1.jar';  }  
  56.   options[2].optionString := '-verbose:jni';  
  57.   JNI_GetDefaultJavaVMInitArgs(@vm_args);  
  58.   vm_args.version := Jni.JNI_VERSION_1_4;  
  59.   vm_args.options := @options;  
  60.   vm_args.nOptions := 3;  
  61.   vm_args.ignoreUnrecognized := Jni.JNI_TRUE;  
  62.   rec := Jni.JNI_CreateJavaVM(@jvm, @env, @vm_args);  
  63.   if (rec = JNI_ERR ) then begin  
  64.     Windows.MessageBox(Self.Handle, '不能创建 JVM''ERR', Windows.MB_OK);  
  65.     exit;  
  66.   end;  
  67.   tenv := TJNIEnv.Create(env);  
  68.   cid := tenv.FindClass('HlCheck');  
  69.   if (cid = nilthen begin  
  70.     Windows.MessageBox(Self.Handle, '找不到类:T''ERR', Windows.MB_OK);  
  71.     exit;  
  72.   end;  
  73.   mid := tenv.GetStaticMethodID(cid, 'dTest''(Ljava/lang/String;)Ljava/lang/String;');  
  74.   if (tenv.ExceptionOccurred<>nilthen begin  
  75.     Windows.MessageBox(Self.Handle, '找不到方法:dTest''ERR', Windows.MB_OK);  
  76.     exit;  
  77.   end;  
  78.   tmp := tenv.CallStaticObjectMethod(cid, mid, [edit1.Text]);//参数array of const  
  79.   if (tenv.ExceptionOccurred()<>nilthen begin  
  80.     Windows.MessageBox(Self.Handle, '调用方法失败!''ERR', Windows.MB_OK);  
  81.     exit;  
  82.   end;  
  83.   Windows.MessageBox(Self.Handle, pchar(tenv.UnicodeJStringToString(tmp)), '成功了', Windows.MB_OK);  
  84.   tenv.Free();  
  85.   jvm^.DestroyJavaVM(jvm);//释放JVM资源  
  86. end;  
  87.   
  88. end.  
  评论这张
 
阅读(353)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017