社区
Java SE
帖子详情
在windows2000下怎样用java实现以下几项功能
bbhl80
2003-10-16 12:05:29
1、修改注册表
2、新建快捷方式
3、调用其它非java程序,列入word excel等
...全文
95
6
打赏
收藏
在windows2000下怎样用java实现以下几项功能
1、修改注册表 2、新建快捷方式 3、调用其它非java程序,列入word excel等
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yiningchen
2003-10-16
打赏
举报
回复
1,2使用JNI,把Windows API封装到JNI
3.Runtime.exec()方法。
bbhl80
2003-10-16
打赏
举报
回复
楼上的各位大虾,多谢多谢!!!
小弟一定细心钻研!!
peacock_king
2003-10-16
打赏
举报
回复
有现成的API:
Windows Registry API Native Interface
地址:
http://www.trustice.com/java/jnireg/
搜索方法:
在www.google.com搜索如下内容:
“how to modify windows registry with java”
chifengwatch
2003-10-16
打赏
举报
回复
gz
imagex
2003-10-16
打赏
举报
回复
jit
JIT(Just In Time,及时编译)技术是个比较好的思想。它的基本原理是:首先通过Java编译器把Java源代码编译成平台无关的二进制字节码。然后在Java程序真正执行之前,系统通过JIT编译器把Java的字节码编译为本地化机器码。最后,系统执行本地化机器码,节省了对字节码进行解释的时间。这样做的优点是大大提高了Java程序的性能,缩短了加载程序的时间;同时,由于编译的结果并不在程序运行间保存,因此也节约了存储空间。缺点是由于JIT编译器对所有的代码都想优化,因此同样也占用了很多时间。
动态优化技术是提高Java性能的另一个尝试。该技术试图通过把Java源程序直接编译成机器码,以充分利用Java动态编译和静态编译技术来提高Java的性能。该方法把输入的Java源码或字节码转换为经过高度优化的可执行代码和动态库 (Windows中的. dll文件或Unix中的. so文件)。该技术能大大提高程序的性能,但却破坏了Java的可移植性。
JNI技术
实际上,有一种通常为我们忽视的技术可以在很大程度上解决这个难题,那就是JNI(Java Native Interface, Java本地化方法)。主张采用纯Java的人们通常反对本地化代码的使用,他们认为在Java程序执行的过程中调用C/C++程序会影响程序的可移植性和安全性。还有一些人认为JNI只是对过去混合编程技术的简单扩展,其实际目的是为了充分利用大量原有的C程序库。
编写jni代码的流程:
1.写java类代码(.java)
2.编译成字节代码(.class)
3.产生c头文件(.h)
4.编写jni实现代码(.c)
5.编译成连接库文件(.dll)
6.运行程序
1. 首先编写需要JNI功能的Java类源文件。其中,需要JNI实现的方法应当用native关键字声明。在该类中,用System. loadLibrary()方法加载需要的动态链接库。关键代码如下:
//Compute.java
……
public class Compute {
public native double comp (double [] params);
……
static {
// 调用动态链接库
System. loadLibrary(“mathlib”);
}
……
}
2. 将该类源文件用Java类编译器编译成二进制字节码文件。由于采用了native关键字声明,编译器会忽视没有代码体的JNI方法部分。
3. 利用javah -jni *.class 生成相关JNI方法的头文件。我们可以手工生成该文件,但是由于Java虚拟机是根据一定的命名规范完成对JNI方法的调用,所以手工编写头文件需要特别小心。
上述文件产生的头文件部分代码如下:
//Compute. h
……
extern “C” {
JNIEXPORT jdouble JNICALL Java_Compute_comp (JNIEnv *, jobject, jdoubleArray);
}
……
可以看出,JNI函数名称分为三部分:首先是Java关键字,供Java虚拟机识别;然后是调用者类名称(全限定的类名,其中用下划线代替名称分隔符);最后是对应的方法名称,各段名称之间用下划线分割。
JNI函数的参数也由三部分组成: 首先是JNIEnv *,是一个指向JNI运行环境的指针;第二个参数随本地方法是静态还是非静态而有所不同——非静态本地方法的第二个参数是对对象的引用,而静态本地方法的第二个参数是对其 Java 类的引用; 其余的参数对应通常 Java 方法的参数,参数类型需要根据一定规则进行映射。
4. 根据头文件编写相应方法的实现代码。由于篇幅所限,具体的实现部分在此不再赘述。在编码过程中,需要注意变量的长度问题,例如Java的整型变量长度为32位,而C语言为16位,所以要仔细核对变量类型映射表,防止在传值过程中出现问题。
5. 利用C/C++编译器将JNI实现代码编译成动态链接库。调用者类中需要显式调用该链接库。
在Win32环境下,可以利用Visual C ++或其他能产生DLL文件的C/C++编译器将实现代码编译成动态链接库。笔者利用的是Microsoft.NET Framework的编译器。编译指令如下,其中%Java_HOME%是笔者的jdk安装目录变量:
cl -I%Java_HOME%\include
-I%Java_HOME%\include\win32
-LD jnicomp. c -Femathlib. dll
在Sun Soloaris下,相应指令为:
cc -G -I/usr/local/java/include -I/usr/local/java/include/solaris jnicomp. c \
-o mathlib. so
注意,编译的时候需要用I指令包含必要的库文件路径。
经过上述处理,就基本上完成了一个包含本地化方法的Java类的开发。
imagex
2003-10-16
打赏
举报
回复
1,2使用JNI,把Windows API封装到JNI
3.Runtime.exec()方法。
楼上完全正确
Java
程序
实现
Windows
串口通信方法
本文还有配套的精品资源,点击获取 简介:本文探讨了在
Java
中
实现
Windows
串口通信的两种方法:通过JNI调用
Windows
API和使用RXTX第三方库。JNI方法涉及编写本地代码和加载动态链接库,而RXTX库提供了简化的API以跨平台
实现
串口通信。文中以RXTX为例展示如何设置串口参数、监听数据事件以及发送和接收数据。同时,本文强调了正确配置JRE和系统路径的重要性...
Java
软件锁屏
功能
实现
指南
在操作系统层面,锁屏
功能
是保护用户数据安全的一项基本
功能
。在
Java
应用中
实现
锁屏
功能
通常需要与底层系统交互。
Java
通过JNI(
Java
Native Interface)或JNA(
Java
Native Access)这类桥接技术
实现
与本地系统API的交互,进而控制锁屏行为。对于开发者而言,了解这些技术如何
实现
锁屏
功能
,不仅有助于扩展应用程序的
功能
,还能加深对
Java
跨平台特性的理解。
将
Java
应用部署为
Windows
服务的
Java
Service工具实战
Java
Service 是一款
Java
应用程序的包装工具,它能够在
Windows
平台上将
Java
程序作为标准 NT 服务运行。通过这个工具,开发者能够为自己的
Java
应用程序添加安装、启动、停止等服务管理
功能
,从而让
Java
应用程序在
Windows
环境下拥有与本地服务相同级别的控制能力。
Java
Service 的使用大大简化了
Java
应用程序在
Windows
服务环境中的部署和管理流程。
windows
环境下运行
java
的脚本
windows
环境下运行
java
的脚本 前几天研发时遇到eclipse运行不稳定的情况,明明
实现
了的
功能
有的时候能运行到,有时运行不到,非常让人头疼。于是想在本地搭一套运行环境,方便比较。 说明:
以下
情况主要针对
java
运行 首先考虑Application。maven编译Spring Boot默认打的包是fatjar,所以比较好处理。此处重点考虑传统Application。也可以考虑打成fatja...
Java
实现
的音乐播放器
由于疫情的原因在家闲着,然后就写了个播放器来练练手。 下面先放效果图: 这里主要
实现
了歌曲的播放,上一曲,下一曲,获取歌曲的时间,播放歌曲进度条滚动,获取歌曲的海报,能自动播放(顺序播放,单曲循环播放,随机播放),可以导入外部歌曲,可以定时关闭音乐并退出,可以设置两个模式(白天和黑夜)。还有一个没有完成的
功能
,收藏喜欢歌曲的
功能
,本来想通过数据库保存喜欢歌曲的路径来
实现
这个
功能
的,然后太懒了,不想写了)。 用
以下
...
Java SE
62,629
社区成员
307,261
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章