- 浏览: 104479 次
- 性别:
- 来自: 南京
-
文章分类
最新评论
-
qq280948982:
其实不用这么麻烦的,参考这篇文章就可解决丢失session的问 ...
Uploadify获取Session -
hui0377:
这样session 就不会过期了??
Uploadify获取Session -
jxdiamond:
使用uploadify插件时,可以通过前台脚本'formDat ...
Uploadify获取Session -
mzh_2008beijing:
楼主,第4步、在程序中使用:
MySessionContext ...
Uploadify获取Session
解压JNative-1.3.2.zip 获得三个文件,分别是:JNativeCpp.dll,libJNativeCpp.so,JNative.jar 。JNativeCpp.dll Windows下用的,拷到windows / system32目录下;
libJNativeCpp.so Linux下使用的;
JNative.jar 这是一个扩展包,加载到你的程序中就可以。
一个简单例子
关于linux下编译 C代码部分说明:
对于linux不同版本,可能会导致libJNativeCpp.so不同
原带的libJNativeCpp.so 是在glic2.4下编译的
为了适应glic2.3的情况,重新编译了libJNativeCpp.so,在for gcc3.4.6 glibc 2.3下。
编译办法:
在JNative-1.3.2-src\JNativeCpp\Release目录下
1、备份calls.o和 asm_io.o这两个Object文件
2、make clean
3、恢复到当前目录calls.o和 asm_io.o这两个Object文件
4、make
目前已经修改了Release目录下的makefile和subdir.mk文件,使得在make clean的时候不删除calls.o和 asm_io.o两个文件
附:linux 动态库搜索路径:
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
makefile 文件
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
-include 。./makefile.init
RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
libJNativeCpp.so Linux下使用的;
JNative.jar 这是一个扩展包,加载到你的程序中就可以。
一个简单例子
import org.xvolks.jnative.JNative; import org.xvolks.jnative.Type; import org.xvolks.jnative.exceptions.NativeException; public class JNativeTest { public static final int messageBox(int parentHandle, String message,String caption, int buttons){// throws NativeException, IllegalAccessException { JNative n = null; try { n = new JNative(“User32.dll”, “MessageBoxA”); //“.dll”不用也 可以, 常量DLL_NAME的值为User32.dll // 构造JNative时完成装载User32.dll,并且定位MessageBoxA方法 n.setRetVal(Type.INT); // 指定返回参数的类型 int i = 0; n.setParameter(i++, Type.INT, “” + parentHandle); n.setParameter(i++, Type.STRING, message); n.setParameter(i++, Type.STRING, caption); n.setParameter(i++, Type.INT, “” + buttons); // 指定位置上的参数类型和值 n.invoke(); // 调用方法 return Integer.parseInt(n.getRetVal()); }catch(Exception ex){ ex.printStackTrace(); }finally { if (n != null) try { n.dispose(); }catch (NativeException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 记得释放 } return 0; } public static void main(String[] args) throws NativeException, IllegalAccessException{ JNativeTest.messageBox(100,“这是使用jnative练习”, “jnativetest”, 1); } }
关于linux下编译 C代码部分说明:
对于linux不同版本,可能会导致libJNativeCpp.so不同
原带的libJNativeCpp.so 是在glic2.4下编译的
为了适应glic2.3的情况,重新编译了libJNativeCpp.so,在for gcc3.4.6 glibc 2.3下。
编译办法:
在JNative-1.3.2-src\JNativeCpp\Release目录下
1、备份calls.o和 asm_io.o这两个Object文件
2、make clean
3、恢复到当前目录calls.o和 asm_io.o这两个Object文件
4、make
目前已经修改了Release目录下的makefile和subdir.mk文件,使得在make clean的时候不删除calls.o和 asm_io.o两个文件
附:linux 动态库搜索路径:
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
makefile 文件
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
-include 。./makefile.init
RM := rm -rf
# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include objects.mk
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
发表评论
-
mysql超时设置using the Connector/J connection property 'autoReconnect=true' to avoid
2014-06-04 12:08 1064com.mysql.jdbc.Communications ... -
Java中Process的waitFor()阻塞问题
2013-05-13 17:34 1711最近项目需要用java解析3dsmax场景文件,但是3dsma ... -
java实现ping功能测试指定ip机器是否可达
2013-04-18 16:28 888最近总是要虚拟机运行一段时间总是出问题,但是数十台机器一台台用 ... -
java的8种排序方法
2014-09-15 22:56 643转自http://www.iteye.com/topic/11 ... -
java的8种排序方法
2013-03-20 22:53 0转自http://www.iteye.com/topic/11 ... -
java与C++程序通信交互
2013-03-08 10:54 788java与C++程序通信的方法有很多,常见的有: JNI JN ... -
Struts2拦截器处理用户操作日志
2013-03-06 14:18 1059public String intercept(Actio ... -
Spring AOP操作action时无法注入,报NullPointer异常
2013-03-06 11:33 1525当使用Spring AOP对action层进行操作时,会出现注 ... -
Spring AOP实现用户操作日志管理
2013-03-06 11:26 985通过注解方式使用AOP实现用户操纵日志管理的具体步骤如下: 1 ... -
session过期iframe里出现嵌套登录界面
2012-12-17 14:59 1009在你想控制跳转的页面,比如login.jsp中的<hea ... -
Java获取系统文件类型图标并显示在JSP上
2012-12-03 15:51 2370在网站制作中通常需要上传附件,而对于附件我们往往希望在其名称前 ... -
Can not find a java.io.InputStream with the name [inputStream] in the invocation
2012-11-30 11:38 746具体异常是这句话: Can not find a java. ... -
JNI 返回结构体参数
2012-11-19 19:46 1932如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jn ... -
Tomcat设置虚拟目录
2012-11-14 12:48 811项目开发中碰到需要产生大量的图片,如果把这些图片全部放在项目目 ... -
BigDecimal不整除的一个异常
2012-11-05 17:49 770金额的数据类型是BigDecimal 通过BigDecima ... -
Java jaspereport导出pdf及excel报表源码
2012-10-30 22:16 813加载jasper文件,接收map参数导出报表至指定目录。 ... -
Java定时器的使用
2012-10-29 14:57 639本例依据Java自身提供的接口实现,通过监听器(Listene ... -
Spring定时器的使用-注解形式
2012-10-29 14:50 1060Spring3中加强了注解的使用,其中计划任务也得到了增强,现 ... -
Spring定时器的使用-xml配置形式
2012-10-29 14:37 846详细配置如下: 1、bean.xml <?xml ver ... -
字符串左斜杠替换成右斜杠
2012-10-23 17:23 1466在做项目过程中 需要将一个字符串中的左斜杠全部替换成右斜杠 以 ...
相关推荐
本项目涉及的"java调用C++动态链接库dll接口"是解决这种跨语言交互问题的一种方法,主要利用了Java Native Interface(JNA)这一技术。 JNA是Java平台的标准库,它允许Java代码直接调用本机库(如DLL或.so文件)的...
Java调用DLL是Java开发中一个重要的技术主题,它允许Java程序与本地操作系统API或者其他C/C++编写的动态链接库进行交互。在Java中,有多种方法可以实现这个功能,其中最常用的是Java Native Interface (JNA) 和 ...
本文将深入探讨这两种方法,以及如何在Java中调用C语言编写的SO(Linux下的动态链接库)和DLL(Windows下的动态链接库)中的函数。 首先,JNI是Java官方提供的原生接口,允许Java代码直接与本地代码交互。在Java中...
标题"jna jar实现java调用dll"指的是使用JNA库来在Java程序中调用Windows平台上的动态链接库(DLL)文件。JNA通过jar包的形式提供服务,使得Java开发者可以方便地将DLL的功能集成到Java应用中。 描述中提到...
Java 使用 JNA(Java Native Access)调用C/C++编写的第三方动态库(DLL文件)是一种常见的技术,它允许Java程序直接与本地操作系统接口交互,而无需编写JNI(Java Native Interface)代码。JNA 提供了一种相对简洁...
总结,Java调用动态库实例展示了如何利用JNA和JNative在Java中调用本地函数,既适用于独立的Java应用,也适用于Web项目。JNA提供了更简洁的接口,而JNative则提供了对本地代码的直接访问。理解并掌握这两种技术,将...
综上所述,Java调用C或C++动态库主要依赖于JNA库,它为开发者提供了一个简洁的方式来集成非Java代码。通过定义接口和调用其方法,Java程序可以直接使用DLL的功能,极大地扩展了Java的适用范围。在实际开发中,需要...
在Java程序中调用DLL(动态链接库)文件通常是通过JNI(Java Native Interface)来实现的,而JNative是JNI的一个封装库,它提供了一种更简洁的方式来调用C/C++编写的本地代码。这篇博客文章可能介绍了如何利用...
在本文中,我们将深入探讨如何使用Java调用DLL库,特别是在银联POS机接口的集成应用上。这个项目是基于JDK1.8开发的,它利用了Maven作为项目管理工具,使得开发者能够更方便地引用和管理DLL库。对于那些在IT行业,...
Java 调用动态库是 Java 语言中的一种技术,用于调用动态链接库(DLL),从而实现与native 代码的交互。下面将详细介绍 Java 调用动态库的知识点。 一、使用 JNI 调用动态库 JNI(Java Native Interface)是一种...
这里,"EasyLogdll"是你的C++动态库的名称,根据实际情况可能需要加上.dll或.so等后缀。 在C++端,你需要实现`processArray`函数,处理输入的二维数组并返回结果到输出数组。注意,C++的二维数组在内存中是一维连续...
这就涉及到如何在Java中调用DLL的问题。 #### 方案选择:JNA vs JNI 在Java中调用外部C/C++函数的传统方式是使用JNI(Java Native Interface)。然而,JNI的使用过程相对繁琐,涉及多个步骤,包括编写C/C++接口代码...
在标题"JNA java调用dll"中,我们关注的核心技术就是Java通过JNA来调用动态链接库(DLL)文件,这是在Java中实现跨平台 native 功能的一种方法。 DLL是Windows操作系统中的一个重要概念,它包含了一系列可被不同...
Java Native Access(JNA)是一种开源的Java框架,它为Java程序员提供了一种简洁的方式来调用C动态库(如.dll、.ocx、.so),大大简化了原本繁琐的JNI(Java Native Interface)调用过程。JNA由SUN公司主导开发,它...
为了在Java中实现这一目标,常用的方法是使用Java本地接口(JNI)。然而,JNI需要复杂的本地代码编写和编译,这就为Java开发带来了一定的复杂性。Java本地访问(JNA)是一个很好的替代方案,它允许Java应用程序直接...
### Java调用动态库最简便方法 #### 引言 在跨语言开发中,Java调用其他语言(如C/C++)编写的动态链接库(DLL)是一种常见的需求。传统上,这种调用通常依赖于Java Native Interface (JNI),但这种方法涉及到较为...
Java调用DLL(动态链接库)和ActiveX控件是跨平台编程中常见的技术,尤其在需要与Windows系统原生功能交互时。`njawin`框架为Java开发者提供了一个简便的方法来实现这一目标,使得Java应用程序能够利用DLL和ActiveX...
本文主要讨论了两种方法,使得Java应用程序能够调用由Delphi开发的DLL动态链接库。这两种方法分别是:通过JNI(Java Native Interface)和使用JNA(Java Native Access)第三方组件。 1. **JNI调用Delphi开发的DLL*...
首先,Java调用dll主要依赖于Java本地接口(Java Native Interface, JNI)。JNI允许Java代码与本地代码(如C++或C)进行交互。为了在Java中使用dll,你需要遵循以下步骤: 1. **创建Java接口**:定义一个Java接口,这...
- **优势**:相较于传统的JNI,使用JNA可以避免复杂的适配器编写工作,仅需在Java中定义接口和代码即可直接调用DLL或SO中的函数。 - **应用场景**:适用于需要与操作系统底层交互的应用场景,如硬件控制、系统服务...