`
liwenge
  • 浏览: 79322 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

Item 5: Java调用dll

阅读更多

本节通过一个简单的实例来说明Java程序中如何调用dll

1.创建HelloWorld.java;

2.编译HelloWorld.java文件,产生HelloWorld.class文件;

class HelloWorld {
	public native static void sayHelloWorld();
}
 3
.在命令行下执行javah HelloWorld,产生HelloWorld.h文件;
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    sayHelloWorld
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_HelloWorld_sayHelloWorld
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif
 

4.在Visual C++6.0 中建立Win32 Dynamic-Link Library工程,并编写HelloWorld.cpp文件,包含上一步中生成的HelloWorld.h头文件,编译执行,生成HelloWorld.dll文件,并将dll文件移至HelloWorld目录下;

#include "HelloWorld.h"
#include <stdio.h>

JNIEXPORT void JNICALL Java_HelloWorld_sayHelloWorld (JNIEnv * jni_env, jclass jc)
{
	printf("HelloWorld!\n");
}

  

 5.打开HelloWorld.java文件,修改如下 
class HelloWorld {
	public native static void sayHelloWorld();

	static {
		System.loadLibrary("HelloWorld");
	}

	public static void main(String[] args) {
		HelloWorld.sayHelloWorld();
	}
   重新编译执行,得到输出结果。

 注意:

如果在jdk1.6环境下的Eclipse 3.2.1运行会报错误,但该错误是由于Eclipsejdk1.6冲突造成的,并不是Java本身的问题,所以该程序最好在命令行下执行。

 

 

分享到:
评论

相关推荐

    java调用office使用的dll文件

    标题中的"java调用office使用的dll文件"指的是Jacob库的核心部分——动态链接库(DLL)文件。DLL文件是Windows操作系统中的一种共享库,包含可由多个程序同时使用的代码和数据。在Jacob中,有针对不同操作系统位数的...

    java源码:Java-COM中间件 JACOB.zip

    - JNI接口:JACOB的核心是JNI,它允许Java代码调用本地方法,即C或C++编写的函数。在JACOB中,JNI被用来创建和操作COM对象。 - COM组件:COM(Component Object Model)是微软的一种软件组件模型,它定义了组件间...

    java朗读简单字符串所需的jacob包及dll文件 jacob_1.19

    你需要确保这个dll文件被正确地加载,通常是将其放置在系统的`System32`目录下,或者在Java启动时通过`java.library.path`系统属性指定其位置。 接下来,我们来看看如何使用`jacob`进行文本朗读。`jacob`会调用...

    jcom 实现 java 写 Excel实例(包含jar包_dll文件_api)资料全

    首先,`jcom`库利用Java的JNI(Java Native Interface)技术,通过调用Windows平台上的`dll`文件与Excel进行通信。在Java项目中,你需要引入`jcom`相关的`jar`包,如`jcom.jar`,同时还需要`dll`文件,例如`jcom_x....

    Java 实现word文件增加图片水印 jacob实现 用到的jar

    接下来是Jacob(Java COM Bridge),这是一个Java到COM(Component Object Model)桥接器,允许Java代码直接调用Windows上的COM组件。在本例中,Jacob主要用于与Microsoft Word交互,因为Word本身提供了COM接口,...

    jacob打印word和excel,包含dll和jar包

    - 把对应的`.dll`文件(通常是`jacob.dll`)放到系统PATH环境变量覆盖的目录下,例如`System32`或者Java的`bin`目录。注意,根据操作系统(32位或64位)选择正确的`.dll`版本。 2. **使用Jacob打印Word文档**: -...

    Java jacobjar 文字转语音,64和32都支持

    2. 将Jacob的DLL文件(根据你的系统是32位还是64位,可能是`jacob.dll`或`jacob-x64.dll`,`jacob-ia32.dll`)添加到系统的PATH环境变量中。 3. 在Java项目中引入Jacob库,通过`Class.forName("com.jacob.ComThread"...

    jacob-1.18-x64.dll文件 CSDN下载

    Jacob-1.18-x64.dll就是这样一个桥梁,它允许Java程序直接调用已注册的COM组件,例如Microsoft Word的对象模型,执行创建、编辑、格式化文档等一系列操作。 在实际应用中,使用Jacob-1.18-x64.dll进行Word自动化...

    JACOB 1.17 M2版本下载

    Dispatch worksheet = Dispatch.call(worksheets, "Item", new Variant(1)).toDispatch(); Dispatch.call(worksheet, "Range", "A1").setValue("Hello, World!"); excel.invoke("Quit", new Variant[]{}); } } `...

    jacob_1.10.1.zip

    3. 配置环境变量:将dll文件路径添加到系统的PATH环境变量中,确保Java运行时可以找到它。 4. 配置Java类路径:将Jacob的jar文件(如jacob.jar)添加到Java项目的类路径中。 三、Jacob的基本使用 1. 引入依赖:在...

    JAVA操作微软COM组件的连接工具

    Dispatch sheet = Dispatch.call(sheets, "Item", new Variant(1)).toDispatch(); Dispatch.call(sheet, "Name", "新工作表"); ``` 5. **释放资源**:使用完毕后,记得释放 COM 对象,防止内存泄漏。这通常通过...

    jacob 1.14.3.dll插件及jacobAPI文档

    Jacob插件的核心是`jacob-1.14.3.dll`动态链接库文件,它在Java程序运行时提供对COM接口的访问。 1. **Jacob插件介绍** Jacob插件是Java开发中的一个重要工具,特别适用于需要在Java应用中处理与Windows操作系统...

    jacob-1.20源文件和下载地址

    2. **配置环境**:将dll文件放入系统的PATH环境变量中,确保Java运行时能找到它。 3. **导入库**:在Java项目中添加Jacob的jar文件作为依赖,以便编译时可以引用其类和方法。 4. **编写代码**:使用Jacob提供的API...

    jacob-1.14.3.zip

    使用Jacob时,需要将对应的dll文件添加到系统的PATH环境变量中,同时在Java项目中添加Jacob的jar文件作为依赖。在Windows上,还需要安装与Jacob兼容的Visual C++ Redistributable Package,以解决运行时的依赖问题...

    Java通过Microsoft office接口来读写Excel、Word、Visio文件的代码

    内容概要:如果你想Java使用类似C#/VB.NET调用Office com的方式操作Excel、Word、Visio文件,推荐你使用Com4j,使用方式与VBA类似简单。网上没有现成操作这三类文件的Com4j库,笔者提供自己的库供使用。重点事项:...

    jacob是java平台下对excel,word进行打印等操作工具

    这意味着Java代码会调用预先编译好的本地DLL(动态链接库),这些DLL与特定的Windows版本(32位或64位)兼容。因此,如果你在64位系统上运行,需要确保使用对应的64位Jacob库;同样,在32位系统上则使用32位库。 ...

    jacob_1.19(32bit+64bit)

    它通过JNI(Java Native Interface)来实现这一目标,允许Java代码直接调用C++编译的dll文件,进而调用COM组件。Jacob的jar包中包含了大量的Java类,这些类封装了对COM对象的操作,简化了Java程序员的使用难度。 **...

    com.jacob jar包

    2. **配置dll路径**:确保`jacob.dll`在系统路径中可找到,或者将其复制到Java的`bin`目录下。 3. **创建`DynamicDispatchObject`**:使用`com.jacob.activeX.ActiveXComponent`类创建一个与COM对象交互的对象实例...

Global site tag (gtag.js) - Google Analytics