java 怎么用windows api 如何在JAVA中调用windows API
\u5982\u4f55\u7528java\u8c03\u7528windows\u7cfb\u7edfAPI\uff1fJava Native Interface
\u901a\u8fc7JNI\u63a5\u53e3\uff0c\u53ef\u4ee5\u4f7fJava\u7a0b\u5e8f\u8c03\u7528\u5176\u4ed6\u8bed\u8a00\u7684\u7684\u51fd\u6570\u3002
\u4f46\u662f\u4f7f\u7528JNI\u7684Java\u7a0b\u5e8f\uff0c\u5c31\u5931\u53bb\u4e86\u53ef\u79fb\u690d\u6027\u3002
\u53ef\u4ee5\u8fd9\u4e48\u5199\uff1a
class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
}
HelloWorldImp.c.
#include
#include "HelloWorld.h"
#include
JNIEXPORT void JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}
\u8981\u8c03\u7528Windows\u7684API\u9700\u8981\u4f7f\u7528JNI\u6280\u672f
java使用JInvoke调用windows API使用jinvoke调用windowsAPI。jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样。
官网使用参考:http://www.jinvoke.com/calling-the-win32-api-from-java
一个弹出框的例子(这种代码用于调用任何dll,不只是windows的,也可以是自己写的dll)
import com.jinvoke.JInvoke;
import com.jinvoke.NativeImport;
public class HelloWindows
{
@NativeImport(library="User32")
public static native int MessageBox(int hwnd,
String text,
String caption,
int type); //windows Api MessageBox函数原型
public static void main(String[]argc)
{
JInvoke.initialize();
MessageBox(0,"Thisi MessageBox is a native Win32 MessageBox",
"Hellow World",0);
}
}
扩展阅读:javascript免费网站 ... zookeeper java api ... java.52emu.cn ... javascript高级视频 ... www.oneplus.com ... java webservice ... 免费源码资源源码站 ... java入门网站 ... 黑马java视频 ...