本节通过一个简单的实例来说明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运行会报错误,但该错误是由于Eclipse与jdk1.6冲突造成的,并不是Java本身的问题,所以该程序最好在命令行下执行。
分享到:
相关推荐
标题中的"java调用office使用的dll文件"指的是Jacob库的核心部分——动态链接库(DLL)文件。DLL文件是Windows操作系统中的一种共享库,包含可由多个程序同时使用的代码和数据。在Jacob中,有针对不同操作系统位数的...
- JNI接口:JACOB的核心是JNI,它允许Java代码调用本地方法,即C或C++编写的函数。在JACOB中,JNI被用来创建和操作COM对象。 - COM组件:COM(Component Object Model)是微软的一种软件组件模型,它定义了组件间...
你需要确保这个dll文件被正确地加载,通常是将其放置在系统的`System32`目录下,或者在Java启动时通过`java.library.path`系统属性指定其位置。 接下来,我们来看看如何使用`jacob`进行文本朗读。`jacob`会调用...
首先,`jcom`库利用Java的JNI(Java Native Interface)技术,通过调用Windows平台上的`dll`文件与Excel进行通信。在Java项目中,你需要引入`jcom`相关的`jar`包,如`jcom.jar`,同时还需要`dll`文件,例如`jcom_x....
接下来是Jacob(Java COM Bridge),这是一个Java到COM(Component Object Model)桥接器,允许Java代码直接调用Windows上的COM组件。在本例中,Jacob主要用于与Microsoft Word交互,因为Word本身提供了COM接口,...
- 把对应的`.dll`文件(通常是`jacob.dll`)放到系统PATH环境变量覆盖的目录下,例如`System32`或者Java的`bin`目录。注意,根据操作系统(32位或64位)选择正确的`.dll`版本。 2. **使用Jacob打印Word文档**: -...
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就是这样一个桥梁,它允许Java程序直接调用已注册的COM组件,例如Microsoft Word的对象模型,执行创建、编辑、格式化文档等一系列操作。 在实际应用中,使用Jacob-1.18-x64.dll进行Word自动化...
Dispatch worksheet = Dispatch.call(worksheets, "Item", new Variant(1)).toDispatch(); Dispatch.call(worksheet, "Range", "A1").setValue("Hello, World!"); excel.invoke("Quit", new Variant[]{}); } } `...
3. 配置环境变量:将dll文件路径添加到系统的PATH环境变量中,确保Java运行时可以找到它。 4. 配置Java类路径:将Jacob的jar文件(如jacob.jar)添加到Java项目的类路径中。 三、Jacob的基本使用 1. 引入依赖:在...
Dispatch sheet = Dispatch.call(sheets, "Item", new Variant(1)).toDispatch(); Dispatch.call(sheet, "Name", "新工作表"); ``` 5. **释放资源**:使用完毕后,记得释放 COM 对象,防止内存泄漏。这通常通过...
Jacob插件的核心是`jacob-1.14.3.dll`动态链接库文件,它在Java程序运行时提供对COM接口的访问。 1. **Jacob插件介绍** Jacob插件是Java开发中的一个重要工具,特别适用于需要在Java应用中处理与Windows操作系统...
2. **配置环境**:将dll文件放入系统的PATH环境变量中,确保Java运行时能找到它。 3. **导入库**:在Java项目中添加Jacob的jar文件作为依赖,以便编译时可以引用其类和方法。 4. **编写代码**:使用Jacob提供的API...
使用Jacob时,需要将对应的dll文件添加到系统的PATH环境变量中,同时在Java项目中添加Jacob的jar文件作为依赖。在Windows上,还需要安装与Jacob兼容的Visual C++ Redistributable Package,以解决运行时的依赖问题...
内容概要:如果你想Java使用类似C#/VB.NET调用Office com的方式操作Excel、Word、Visio文件,推荐你使用Com4j,使用方式与VBA类似简单。网上没有现成操作这三类文件的Com4j库,笔者提供自己的库供使用。重点事项:...
这意味着Java代码会调用预先编译好的本地DLL(动态链接库),这些DLL与特定的Windows版本(32位或64位)兼容。因此,如果你在64位系统上运行,需要确保使用对应的64位Jacob库;同样,在32位系统上则使用32位库。 ...
它通过JNI(Java Native Interface)来实现这一目标,允许Java代码直接调用C++编译的dll文件,进而调用COM组件。Jacob的jar包中包含了大量的Java类,这些类封装了对COM对象的操作,简化了Java程序员的使用难度。 **...
2. **配置dll路径**:确保`jacob.dll`在系统路径中可找到,或者将其复制到Java的`bin`目录下。 3. **创建`DynamicDispatchObject`**:使用`com.jacob.activeX.ActiveXComponent`类创建一个与COM对象交互的对象实例...