?
JRE(Java Runtime Environment): Java运行环境.
?
打开JRE安装目录.目录包括bin,lib二个文件夹.
1. bin: 可以认为这是Java虚拟机.
2. lib: 执行class文件时,Java虚拟机需要用到的类库.
?
① bin目录最主要的工具是java.exe,它用来执行class文件.
如果只是为了单纯运行Java程序的话,其他可执行文件一般都是用不到的(可剔除).
?
② bin目录里面的动态链接库文件dll是java.exe执行class文件过程中调用的.
执行class文件,java.exe需要哪个库文件就加载哪个dll,不需用的可以剔除.
?
本文主要介绍哪些动态链接库文件被java.exe加载,为java.exe执行class文件,运行当前Java程序所必需的.
?
实例:
?
/* @author jarg @TODO 举例查看当前程序必需的dll文件 */ import java.io.InputStreamReader; import java.io.IOException; public class Hello { public static void main(String[] args) throws IOException { InputStreamReader ir = new InputStreamReader(System.in); System.out.println("Hello"); ir.read(); } }
?
为了不让程序刚运行就退出,添加了一条接收键盘输入的设语句: ir.read();等待用户键盘输入,以方便查看正在被java.exe加载的动态链接库文件.
?
通过java Hello命令运行上面的程序.
?
保持程序运行的同时,打开Windows任务管理器,在进程中查看镜像名称为: java.exe进程的PID.
?
打开下面附件里的Dll killer,在进程ID处输入java.exe的PID值就能看到java.exe执行当前程序所加载的dll文件.
?
目录路径为:(因jdk,jre安装路径不同而异)C:\Program Files\Java\jre\bin的dll文件即为java.exe执行当前程序所需要加载的虚拟机下的dll文件.将这些文件按照原来的目录层次复制出来就完成了本文要介绍的内容: 精简bin目录.
?
注: 查看进程加载的dll文件的方式,软件很多.
360安全卫士 -> 功能大全 -> 进程管理器 右上角的显示加载到当前选中进程中的dll.
附件中的进程管理器XP,CProcess,SRTask,冰点都能完成这一功能.
?