Jawin(Java/Win32)是一个免费的、开放源代码的体系结构,用于 Java 组件和通过 Windows COM 对象或 Windows DLL 来公开的组件之间的互操作。Jawin 允许 Java 应用程序调用任何基于 COM 或 DLL 的遗留代码,而不需要编写任何 JNI 代码。您的代码将能与诸如 Microsoft Office 套件等可编写脚本的应用程序交互,调用诸如 Microsoft 的基于 COM 的 XML 解析器和工具等可编写脚本的逻辑组件,以及访问诸如 Windows 注册表、安全 API 和事件日志等 Win32 API 特性。Jawin 包括一个用于可编写脚本的 COM 组件的代码生成器。该代码生成器读取类型库,并自动产生从 Java 应用程序调用该组件所需要的Java存根(stub)。
/* * HelloDll.java - * * This file is part of the Jawin Project: http://jawinproject.sourceforge.net/ * * Please consult the LICENSE file in the project root directory, * or at the project site before using this software. *//* $Id: HelloDll.java,v 1.3 2004/06/14 20:16:38 arosii_moa Exp $ */package demos;importorg.jawin.COMException;importorg.jawin.FuncPtr;importorg.jawin.ReturnFlags;/** * Demo that uses the Win32 MessageBoxW API-method. * * @version $Revision: 1.3 $ * @author Stuart Halloway, http://www.relevancellc.com/halloway/weblog/ */publicclass HelloDll {publicstaticvoid main(String[] args)throwsException{ FuncPtr msgBox =null;try{ msgBox =new FuncPtr("USER32.DLL","MessageBoxW"); msgBox.invoke_I(0,"Hello From a DLL","From Jawin", 0, ReturnFlags.CHECK_FALSE);}catch(COMException e){// handle exception e.printStackTrace();throw e;}finally{if(msgBox !=null){try{ msgBox.close();}catch(COMException e){// handle fatal exception e.printStackTrace();throw e;}}}}}