delphi&Java&JNI一次体验
2007-07-09 14:32
288 查看
本人以前一直操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的路
先将我的问题描述一些,免得新手犯和我一样的困惑!
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的路
相关文章推荐
- 通过 JNI 让 JAVA 与 Delphi 程序交互(五)
- elasticsearch的一次体验——1.Java环境的安装
- Java中如何克服"构造器只能使初始化工作进行一次"的"缺点"?
- 用Delphi开发JNI(Java Native Interface)应用(二)
- JNI中用 javah.exe 产生头JNI-Style文件出现错误:无法访问 <class> 未找到 <class> 的类文件
- java native&JNI
- Java JNI 和 Delphi 相互調用(2)-Delphi調用Java
- Android之jni编译出现no matching function for call to '_JNIEnv::GetJava(JNIEnv* &, Java VM**)'解决办法)'
- JAVA & CORBA & JNI & C++中文问题
- Delphi利用jni向java程序中传递参数
- Android C 直接調用JNI ->JAVA
- [JNI] java.lang.UnsatisfiedLinkError:Native method not found && no implementation found for native ~
- Delphi FireMonkey如何翻译AndroidSDK中的Java类为JNI单元
- 死亡历险,Delphi以Json方式一次传递多张图片通过WebService到Java保存
- eclipse Fail to load the JNI share library"C:\Java\jdk1.7.0\bin\..\jre\bin\client\jvm.dll
- java - JNI - 【 java <-> C++ String 的转换 】
- JNI:Java调用Delphi编写的dll
- Android JNI编程(八)——体验AS2.2.2编写Jni程序、Java调C、C调Java函数、将C代码中的Log打印至Logcat
- 用Delphi开发JNI(Java Native Interface)应用(一)
- 一次Java出错体验