Java 调用 Windows API 可能性的实现
在 Google 输入 java call win32api 的第一个结果
http://www.jinvoke.com/calling-the-win32-api-from-java
就是我需要的答案。呵呵
看看这个吧
java版任务管理器
java版注册表编辑器
Calling the Win32 API from Java
首先从 http://www.jinvoke.com/calling-the-win32-api-from-java 将 jinvoke下载回来
将 jinvoke.jar 解压到 磁盘任意目录,配置环境变量
如果当前用户中没有 classpath 环境变量 请新建之
我这里 java 安装路径是 C:\Program Files\Java\jdk1.5.0_09
我应该设置的的 classpath 值是
.;C:\Program Files\Java\jdk1.5.0_09\lib\tools.jar;C:\Program Files\Java\jdk1.5.0_09\lib\dt.jar
其中 .; 代表当前目录
其次查看 系统全局变量“系统变量”
找到path
在path头处添加 .;
尾部添加;C:\Program Files\Java\jdk1.5.0_09\bin;
配置好后一路“确定”后编写java文件
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);
}
}
将 jinvoke.jar 放到 HelloWindows.java 同级目录
统计目录编写批处理文件 compile.bat
@echo off
color 0f
javac -classpath %~dp1jinvoke.jar; %1
if %errorlevel%==0 (
echo 编译成功
cd %~dp1
java -classpath %~dp1jinvoke.jar; %~n1>nul 2>nul
)
pause
把 HelloWindows.java 往 complie.bat 拖动
如果你的java软件包没问题就会出现这个画面
至于windows api能做什么,我就不说了。
csdn 示例下载地址
http://download.csdn.net/source/1623746
相关文档:
0、 需要标识符
a) 不在函数内
1、 非法表达式开始
b) 可能:丢失括号 .
2. no data found
a) 可能:setInt(1,100)中,没有100这个值
3. 找不到符号
a) 可能:没导入包
4. 指定了无效URL
a) 可能:数据库名或IP错误,即连接出错
5. 类路径没有找到
a) 可能: ClassNotFoundException: oracle.jdbc.driver.Or ......
package algorithm.binarytree;
import java.util.Arrays;
import java.util.Stack;
import util.ArrayUtil;
import util.OutputUtil;
public class BinTree {
private BinNode root = null;
public BinTree()
{
}
&nb ......
原子操作
所谓原子操作,就是"不可中断的一个或一系列操作" , 在确认一个操作是原子的情况下,多线程环境里面,我们可以避免仅仅为保护这个操作 在外围加上性能昂贵的锁,甚至借助于原子操作,我们可以实现互斥锁。 关于java中的原子性
原子性可以应用于除long和double之外的所有基本类型之上的“简单操作”。对 ......
public static void getSysProp(){
Properties props = System.getProperties();
Set<Entry<Object,Object>> res = props.entrySet();
Iterator it = res.iterator();
while (it.hasNext())
{
Map.Entry e = (Map.Entry)it.next();
......