Java调用dll的实现

Java工程实现调用dll加密:

一、idea中

生成一个Java文件,加载库dll,声明native函数;

static {

System.loadLibrary("Test_SimpleEncryForJava");

}

public native static void
SimpleEncryFile(String
srcFile, String desFile, String passwd);

通过命令行进入合适的目录,javah + 类名生成.h文件(不需要.java后缀)。

二、为vs配置所需的文件

将jdk中的include/jni.h和include/win32下的两个.h文件放入VS/VC/include目录下

三、vs新建dll工程

1.创建头文件,将javah命令生成的.h文件内容复制进入,将原来的头文件include<jni.h>该为””;

2.添加加密算法;

3.在dllmain.cpp中调用jni格式的加密算法。

4.根据环境,配置x86或者x64运行环境;

5.Build生成dll,导出Java工程直接调用。

原文地址:https://www.cnblogs.com/lyxin/p/10052342.html

时间: 2024-08-28 19:59:01

Java调用dll的实现的相关文章

java调用dll或so动态库文件(c++/c)

java调用dll或so动态库文件(c++/c) 博客分类: 工作 CC#C++JavaEclipse java调用dll或so动态库文件(c++/c)开发平台:Eclipse3.3.1.1+CDT(cdt-master-4.0.3)+MinGW(MinGW-5.1.4) 一:下面是java调用dll(C++) 1:下载并安装cdt :http://www.eclipse.org/cdt/downloads.php  :选择自己eclipse 支持的cdt插件,下载,并且 通过eclipse--

Java 调用Dll

Java 中怎么能调用到dll中的函数呢? 关键是java中生的本地函数名参数和dll中的本地函数名参数一模一样. 这个程序是java中调用dll中的求和函数. 一,java代码部分操作 1.新建工程 2.DllTest.java代码 package com.aizizai.calldll; public class DllTest { static { System.loadLibrary("hellodll"); } public static native int sum(int

Java 调用 C++ (Java 调用 dll)康哥手把手教你

因为要做点图形处理的项目,需要在Java中调用dll库,所以开发的第一步是研究了一下Java Jni的使用方法.突然发现Android Jni 使用跟这个好像(麻蛋,不就是一样的吗,但是Android中需要使用so动态链接库). 第一步 创建Java工程,命名JniDemo,添加JniDemo.java 第二步 在Java类中添加native方法 /** * @author Baokang */ public class JniDemo{ public native static void se

在Windows中实现Java调用DLL(转载)

本文提供调用本地 C 代码的 Java 代码示例,包括传递和返回某些常用的数据类型.本地方法包含在特定于平台的可执行文件中.就本文中的示例而言,本地方法包含在 Windows 32 位动态链接库 (DLL) 中. 不过我要提醒您,对 Java 外部的调用通常不能移植到其他平台上,在 applet 中还可能引发安全异常.实现本地代码将使您的 Java 应用程序无法通过 100% 纯 Java 测试.但是,如果必须执行本地调用,则要考虑几个准则: 将您的所有本地方法都封装在单个类中,这个类调用单个

Java调用DLL

1.假设现在我们要用Java代码调用C语言的方法,也就是实现a+b的方法. 首先,我们需编写一个Java类,如Test.java 1 public class Test { 2 static { 3 System.loadLibrary("jni"); 4 } 5 public native int add(int a,int b); 6 public static void main(String[] args) { 7 Test test=new Test(); 8 int res

java调用dll文件中的类型转换

char *转String   (env)->NewStringUTF("the content you want to type in"); char *转jbyteArray jbyte *by = (jbyte*)data;int nOutSize=225*9;jbyteArray jarray = env->NewByteArray(nOutSize);env->SetByteArrayRegion(jarray, 0, nOutSize, by); retu

Java通过JNI调用dll详细过程(转)

源:Java通过JNI调用dll详细过程 最近项目有这样一个需求,在已有的CS软件中添加一个链接,将当前登录用户的用户名加密后放在url地址中,在BS的login方法里通过解密判断,如果为合法用户则无需再次登录直接进入平台,CS软件方提供了一个加密解密的dll文件,我们需要在action中通过该dll解密,那么就涉及到java调用dll的问题. 首先我选择了JNI方式(因为网上说的另两种方式Jawin, Jacob更不会),大体流程如下: 1.写一个java的class,在类里声明所调用的库名称

java调用C/C++写的dll(转)

源:java调用C/C++写的dll Java语言本身具有跨平台性,如果通过Java调用DLL的技术方便易用,使用Java开发前台界面可以更快速,也能带来跨平台性. Java调用C/C++写好的DLL库时,由于基本数据类型不同.使用字节序列可能有差异,所以在参数传递过程中容易出现问题,DLL中可能需要做相应的转换. 使用Java调用DLL动态链接库的方案通常有三种:JNI, Jawin, Jacob. 其JNI(Java Native Interface)是Java语言本身提供的调用本地已编译的

java调用C++ DLL库方法

最近一个项目要开发网页端人脸识别项目,人脸识别的算法已经写好,是C++版,但是网页端要求使用Java后台,这就涉及到Java调用DLL的问题.经过查找,实现了一个简单的例子. 1.第一步,先在Java中新建一个类 如上图,其中注意这句System.loadLibrary("javaCallcpp");,这就是加载dll文件的代码了.然后我们需要dll中实现下面定义的加减乘除方法. 2.编译文件,文件名为Java2cpp.java,首先编译成class文件,如果用的是eclipse,这个