易截截图软件、单文件、免安装、纯绿色、仅160KB

Java通过JNI调用dll文件

骨头的程序是JAVA写的,赵工的AI库是一个lib,那么强大不用太可惜了,容我想想......
简单来说:
0-Java 建立需求函数模板
1-使用 javah  xxx.class 工具生成.h文件
2-把jni.h、jni_md.h和刚才生成的.h文件放到VS建立的dll空项目里
3-生成可以调用的dll
大功告成
详细点:
例如你要用dll 实现一个Max()函数的功能,先把这个文件编译成class文件
然后用 javah 生成.h 文件
public class TestNative {
 private native static int Max(int a, int b);
 static {
  System.loadLibrary("VCdll");
 }
 public static void main(String[] args) {
  System.out.println(Max(4, 5));
 }
}
visual Studio 里:
0-新建->Win32->Win32项目->起个名mydll->下一步->DLL和空项目->完成
1-把jni.h、jni_md.h和刚才生成的.h文件放到头文件里
2-添加新项目->新建c++文件->cpp文件里引用刚才生成的.h文件->实现相关方法->
3-生成dll
4-放在java文件目录下,ok


相关文档:

JNA实现Java调用Fortran

在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......

c和java中的二进制文件


最近需要写一段程序,完成以下的工作,用java将数据以二进制的形式写入文件中,然后用C读出此二进制文件。
开始的时候没有考虑机器的字节序,直接搞出segment fault.想了很久,才明白原来是java和C的字节序是不一样的。
java中的字节序是big endian的,它是与机器无关的。而c的字机序是机器相关的,而当前用的机器是x84 ......

如何在Java中获取当前代码行行号

为了实现自定义的log类,能够输出具体的代码行行号,通过使用StackTraceElement对象实现了。
这里指出需要注意的几个问题:
1. 程序中返回的代码行行号,是新建StackTrackElement对象的那一行。
2. 可以通过传参的方法实现输出特定行行号。具体实现见代码。
1/**
 2 *
 3 */
 4package leo.demo ......

JAVA开发者最常去的20个英文网站

1.[http://www.javaalmanac.com]  Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
2.[http://www.onjava.com]  OReilly的Java网站. 每周都有新文章.
3.[http://java.sun.com]  官方的Java开发者网站  每周都有新文章发表.
4.[http://www.developer.com/java]  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号