delphi&Java&JNI一次体验

本人以前一直操delphi,最近开始学习java,但是老本不能丢啊,再说,delphi在某些方面确实有比java快速优越的地方(不用多说哈)!呵呵,还说有JNI技术正好有这个机会将这两种技术结合。本来以为比较简单,但是一个路径问题居然弄的我冒皮皮。

先将我的问题描述一些,免得新手犯和我一样的困惑!

1,首先定义java一段的本地函数:

public class HelloWorld {
 
       public native void printText();    //delphi短需要实现的函数
 
       static {
                System.loadLibrary("DelphiAction");
        }
         
        public static void main(String[] args) {
                //创建对象并调用里面的 native 方法.
                System.out.println(System.getProperty("java.library.path"));
                System.out.println("start");
                HelloWorld hw = new HelloWorld();
                hw.printText();
        }
}

2.delphi的实现:

  JNI in 'JNI.pas';

procedure Java_HelloWorld_printText(PEnv: PJNIEnv; Obj: JObject); stdcall;
begin

      Writeln('您好!看到效果了吧。');
end;

{$R *.res}

exports
        Java_HelloWorld_printText;

end.

(注意需要一个JNI的pas文件,网上有啊,随便下,是一个国外的牛人写的)

3.delphi调用dll.开始我将这个dll放在和java工程包的同一个文件夹下,以为这样最省事,结果总是出错:

Exception in thread "main" java.lang.UnsatisfiedLinkError.........

于是我将这个dll system32,system放,还是这个错误。

××××××××××××××××××××××

最后,放在C:/Program Files/Java/jdk1.5.0/jre/bin目录中,哈哈,居然通过。

恭喜,据说这个路径就是所谓的jvm的路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值