最近由于项目的特殊需求,我们必须在程序调用window的dll。
开始我们用jni,后来由于调用的dll太多,而且很烦琐。所以,我们决定用开源的jawin调用。
jawin 可以对dll中的方法进行调用,也可以调用com中的方法.内部还提供了一个工具,直接对 com组件导出成 java的类,个人认为很方便。
下面是我们作的一个测试,很顺利便通过了。
1、下载jawin:http://jawinproject.sourceforge.net/。
2、配置:
》将jawin.jar放于%JAVA_HOME%\jre\lib\ext下。
》将jawin.dll放于c:\winnt\system32下。否则将出现错误:COMException : no jawin in java.library.path;
也可将jawin.dll放于每个项目目录下。
》至此在Editplus中调试Jawin/NJawin的例子,可以通过。 而在Eclipse中有时还会出上面的错误:COMException : no jawin in java.library.path。
》在Eclipse中,菜单->window->preference->Java->installed JREs 将原来的remove,重新建一个指到你的java sdk目录。
》ok了。
3、程序测试:
》调用 dll,dll 的方式不需要导出了,直接调用就可以了,下面是下载的包中提供的一个例子:
》我在win2000下,测试通过。
/*
* Created on Dec 22, 2005
*
*/
import org.jawin.FuncPtr;
import org.jawin.ReturnFlags;
/**
* @author gf mail to gf@163.com
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class GfJawinTest {
public static void main(String[] args) {
try {
FuncPtr msgBox = new FuncPtr("USER32.DLL", "MessageBoxW");
msgBox.invoke_I(0, "Hello From a DLL", "From Jawin", 0, ReturnFlags.CHECK_NONE);
} catch (Exception e) {
e.printStackTrace();
}
}
}
转自:
http://www.blogjava.net/gf7/archive/2005/12/22/25041.html
分享到:
相关推荐
在Java中,我们通常使用Java Native Interface (JNI) 来调用本地方法,但JNI的学习曲线较陡峭,而jawin则提供了一个更简单的解决方案。jawin将DLL中的函数封装为Java的静态方法,开发者可以通过这些静态方法直接调用...
JAWIN 是一个开源项目,它为Java提供了一种简单的方式来访问Windows API和DLL函数。它通过JNI(Java Native Interface)实现了这一目标,使得Java代码能够无缝地与C/C++编写的DLL函数进行通信。以下是一些关于使用...
JAWIN封装了JNI的复杂性,为开发者提供了一个简单易用的API,使得Java程序员无需深入理解JNI的底层细节,就能方便地调用Windows DLL中的函数。 JCOB(Java COM Bridge)也是一个用于Java与COM组件交互的库,它可以...
标题中的“vb6、c#、java的jawin-2.0调用c#做的dll”涉及到了跨语言调用的技术,主要集中在VB6、C#和Java之间如何通过DLL(动态链接库)进行交互。这是一个重要的软件开发课题,因为不同编程语言之间的互操作性有助...
Java调用DLL或COM组件是跨平台编程中的一个常见需求,尤其是在Windows环境下处理Office文档时。标题中的"java调用dll/com组件word excel使用jawin架包"涉及到的技术点主要包含以下几个方面: 1. **Java Native ...
很不错的组件。可以在JAVA里调用Win32组件
Java调用Win API,通常指的是在Java程序中利用Windows操作系统提供的功能接口,这些接口通常以动态链接库(DLL)的形式存在。为了实现这样的调用,开发者通常会使用JNI(Java Native Interface),这是一个允许Java...
Jawin的使用对于那些希望在Java应用程序中利用现有Windows系统资源的开发者来说,是一个强大的工具。然而,需要注意的是,由于DLL和COM组件通常不遵循Java的跨平台性,因此使用Jawin可能限制了程序的移植性。此外,...
Jawin 是一个 Java 绑定库,用于调用 Windows 的本地 DLL 文件,使得在 Java 应用程序中可以利用到原生 Windows 功能。本文将根据给定的“jawin使用步骤.txt”文件,详细介绍如何在 Java 环境下配置并使用 Jawin。 ...
JAWIN为Java开发者提供了一个强大的工具箱,通过它可以轻松地实现Java程序与Windows操作系统的深度交互。正确安装和配置JAWIN是使用该库的基础,同时理解如何处理常见的异常问题也是至关重要的。以上介绍的内容涵盖...
1. **Java与DLL互操作**:在Java中直接调用DLL函数通常需要使用JNI(Java Native Interface),这是一个复杂的接口,需要编写C/C++的本地代码。而Jawin则简化了这一过程,它允许Java代码通过简单的API调用DLL函数。...
基本上覆盖了目前主流的开发语言,DLL使用C++编写,演示了VB、C++、DELPHI、JAVA、C#、汇编、易语言调用这个DLL的方法。有些语言我提供了静态和动态2种调用方法。没有写的恕我孤陋寡闻,如果谁知道请联系我QQ:...
Jawin的核心是一个Java库,它提供了一种桥接机制,使得Java应用程序能够通过JNI(Java Native Interface)直接调用DLL中的函数,同时支持COM对象的创建、方法调用和属性访问。这种方式使得Java开发者可以利用丰富的...
- `dpusedll`: 这可能是一个示例DLL,用于DELPHI的调用。 - `javadll`: 这应该是JAWIN库的示例DLL,供JAVA程序使用。 - `Demo`: 这可能包含了一些示例代码,演示了如何在不同语言中调用DLL。 - `vbusedll`: 同样,这...
Jawin项目就是为了解决这个问题,它提供了一个桥梁,使得Java能够直接调用DLL和COM组件。 Jawin的核心是Java到COM的桥接技术,它允许Java应用直接使用COM组件,而无需通过JNI(Java Native Interface)或者其他的...
Jawin项目的使用极大地扩展了Java的应用范围,使得开发者可以在Java环境中利用丰富的Windows原生功能,同时保持Java的跨平台性。但需要注意的是,由于依赖于特定的操作系统,Jawin不适用于非Windows环境,如Linux或...
总结来说,"Java和DLL(COM)互操作 Jawin.zip"这个资源提供了在Java中利用COM组件的功能,使得Java开发者可以在不离开Java环境的情况下,充分利用Windows平台的丰富资源。通过学习和实践Jawin,开发者可以提升其在跨...
基本上覆盖了目前主流的开发语言,DLL使用C++编写,演示了VB、C++、DELPHI、JAVA、C#、汇编调用这个DLL的方法。有些语言我提供了静态和动态2种调用方法。没有写的恕我孤陋寡闻,如果谁知道请联系我QQ:79194034,或者...
Jawin是一个Java接口,它允许Java应用程序调用Windows API,从而能够操作Microsoft Office应用程序,如Word。Jacob(Java COM Bridge)则是一个Java到COM(Component Object Model)桥接器,它同样提供了与Office...
"jawin jar包"正是这样一个工具,它允许Java应用程序直接调用Windows API,为开发者提供了极大的便利。 Jawin库的核心是通过JNI(Java Native Interface)技术,将Java代码与C++代码结合,使得Java能够访问和调用...