Java&.Net虚拟机精简(GreenJVM&GreenDotNet发布)
作者:互联网
Java&.Net虚拟机精简(GreenJVM&GreenDotNet发布)
变更:
增加[SET_START_MAIN_CLASS_AUTO_LOAD]参数,当此项为真时,程序将设置主函数所在类开机自动启动。
增加初始化界面设置,参数如下:
//程序启动前使用初始界面(此项为false时,以下设定皆无效)
SET_START_INIT=true
//使用的初始界面图片
SET_START_IMAGE=init.bmp
//设置true时初始窗体将自动居中,同时top及left无效
SET_START_LOCATION_AUTO=true
// 设置初始窗体在桌面的X轴
SET_START_LOCATION_LEFT=100
// 设置初始窗体在桌面的Y轴
SET_START_LOCATION_TOP=100
// 设定初始窗体显示时间
SET_START_TIME=1000
//程序启动前使用初始界面(此项为false时,以下设定皆无效) SET_START_INIT=true //使用的初始界面图片 SET_START_IMAGE=init.bmp //设置true时初始窗体将自动居中,同时top及left无效 SET_START_LOCATION_AUTO=true // 设置初始窗体在桌面的X轴 SET_START_LOCATION_LEFT=100 // 设置初始窗体在桌面的Y轴 SET_START_LOCATION_TOP=100 // 设定初始窗体显示时间 SET_START_TIME=1000
PS:本文中所有关于JRE部分皆指Sun JRE。
众所周知,Java能够运行于近乎所有的操作系统,包括Windows、 Mac或Linux等等。
对于任何组织或个人的Java应用而言,只要你的应用程序需要移植或多OS发布,那么将现有应用从一个系统移植到另一个操作系统将是件非常轻松的事情,因为Java使用了虚拟机机制,可以脱离OS的约束而独立解释并执行class。
但有利也有弊,对于很多程序而言,这也同时意味着你的用户必须获得JRE支持,也就是说他需要安装JVM。但我国的现实情况却是很多人别说让他自己下载安装JRE,你就是给他做好全[下一步]的安装程序,他恐怕也连“下一步”都搞不定……||||
有鉴于此,我尝试提供一种解决方案,我将它命名为:GreenJVM,也就是绿色的JVM。
GreenJVM是一个专为绿化Java应用而存在的小程序,以C++开发(昨晚上抽空写的小应用程序,代码原型以前在Blog发过: )。它的执行文件体积很小仅仅370KB,本身也是一个基于JNI的Java应用.真正的核心文件只有2个,一是GreenJVM.exe(执行文件),一个vm.cfg(配置文件),如下图:
它的功能非常简单,仅是解压自带的JRE并取代java.exe文件直接调度jvm.dll罢了。但就是这样一个小程序,却可以很轻松的实现Java软件的绿色发布。
以千里冰封兄的YOYOPlayer为例(冰封兄blog:http://www.blogjava.net/hadeslee/),我们都知道这是一个 非常之好的Java音乐播放器,在Java圈内已经小有名气。但遗憾的是,对比千千静听这类知名软件而言,了解它的人简直比华南虎还要稀有......虽 然软件普及率低的原因多种多样,但对Java应用而言,究其根本还是JVM安装的关系。就像“妈是女人”的道理一样,Java程序的运行环境必须有与其开 发版本兼容的JRE存在,否则无法运作。也就是这道门槛,不知把多少普通用户拦在了Java应用之外。
可能你会说这些是小事,的确,对我们这些Java程序员来讲当然不存在任何问题;但令人遗憾的是,对绝大多数普通用户,特别是并不成熟的中国数亿网民而言 (我是指软件知识的平均值……其实牛人也很多……),安装JRE这几乎是件不可想象的艰巨任务;除非他们有必须使用不可的理由,否则需要下载第三方软件的 程序,绝对是第一时间被pass掉的(一般人使用软件的准则就一条:简单就用,麻烦就不用);无形中大大增加了Java软件普及的难度,明明是很好的程 序,却只能在Java圈子里流传,不禁令人扼腕。
事实上,我们可以通过极简单的技术手段来突破这一限制,轻而易举将Java应用做成绿色软件,免除用户这些不必要犹豫,令他们放心大胆的使用Java程序。
这个过程仅仅需要三步:
1、压缩你的JRE:
目前GreenJVM支持rar和zip两种方式的解压。
2、设置vm.cfg:
vm.cfg内容配置如下:
[LOON]
/*虚拟机解压方式,0.1版仅提供RAR及ZIP两种,Windows平台下建议使用RAR(调用自带unrar.dll,故不要求本地
存在WinRAR,使用ZIP则可以删除unrar.dll)*/
SET_UNPACK_METHOD=rar
//虚拟机压缩包名称,要求配置在vm.cfg同路径下
SET_VM_NAME=jre.pack
//检测本地jvm版本,低于期望值时使用自带jvm,否则以本地虚拟机优先运行
SET_START_REQUIRE_VERSION=1.6
//期望加载的jar,多包以;分隔
SET_START_JAR_PATH=fps_test.jar
//期望执行的main类
SET_START_MAIN_CLASS=org/test/BallPanel
//选填,尝试从指定环境变量获取jvm路径,存在则优先运行本地jvm
//SET_START_ENV=JAVA_HOME
[LOON] /*虚拟机解压方式,0.1版仅提供RAR及ZIP两种,Windows平台下建议使用RAR(调用自带unrar.dll,故不要求本地 存在WinRAR,使用ZIP则可以删除unrar.dll)*/ SET_UNPACK_METHOD=rar //虚拟机压缩包名称,要求配置在vm.cfg同路径下 SET_VM_NAME=jre.pack //检测本地jvm版本,低于期望值时使用自带jvm,否则以本地虚拟机优先运行 SET_START_REQUIRE_VERSION=1.6 //期望加载的jar,多包以;分隔 SET_START_JAR_PATH=fps_test.jar //期望执行的main类 SET_START_MAIN_CLASS=org/test/BallPanel //选填,尝试从指定环境变量获取jvm路径,存在则优先运行本地jvm //SET_START_ENV=JAVA_HOME
3、发布应用,此时只需一个文件夹,就可以完全容纳下整个Java应用了。
变更:
增加[SET_START_MAIN_CLASS_AUTO_LOAD]参数,当此项为真时,程序将设置主函数所在类开机自动启动。
增加初始化界面设置,参数如下:
//程序启动前使用初始界面(此项为false时,以下设定皆无效)
SET_START_INIT=true
//使用的初始界面图片
SET_START_IMAGE=init.bmp
//设置true时初始窗体将自动居中,同时top及left无效
SET_START_LOCATION_AUTO=true
// 设置初始窗体在桌面的X轴
SET_START_LOCATION_LEFT=100
// 设置初始窗体在桌面的Y轴
SET_START_LOCATION_TOP=100
// 设定初始窗体显示时间
SET_START_TIME=1000
//程序启动前使用初始界面(此项为false时,以下设定皆无效) SET_START_INIT=true //使用的初始界面图片 SET_START_IMAGE=init.bmp //设置true时初始窗体将自动居中,同时top及left无效 SET_START_LOCATION_AUTO=true // 设置初始窗体在桌面的X轴 SET_START_LOCATION_LEFT=100 // 设置初始窗体在桌面的Y轴 SET_START_LOCATION_TOP=100 // 设定初始窗体显示时间 SET_START_TIME=1000
PS:本文中所有关于JRE部分皆指Sun JRE。
众所周知,Java能够运行于近乎所有的操作系统,包括Windows、 Mac或Linux等等。
对于任何组织或个人的Java应用而言,只要你的应用程序需要移植或多OS发布,那么将现有应用从一个系统移植到另一个操作系统将是件非常轻松的事情,因为Java使用了虚拟机机制,可以脱离OS的约束而独立解释并执行class。
但有利也有弊,对于很多程序而言,这也同时意味着你的用户必须获得JRE支持,也就是说他需要安装JVM。但我国的现实情况却是很多人别说让他自己下载安装JRE,你就是给他做好全[下一步]的安装程序,他恐怕也连“下一步”都搞不定……||||
有鉴于此,我尝试提供一种解决方案,我将它命名为:GreenJVM,也就是绿色的JVM。
GreenJVM是一个专为绿化Java应用而存在的小程序,以C++开发(昨晚上抽空写的小应用程序,代码原型以前在Blog发过: )。它的执行文件体积很小仅仅370KB,本身也是一个基于JNI的Java应用.真正的核心文件只有2个,一是GreenJVM.exe(执行文件),一个vm.cfg(配置文件),如下图:
它的功能非常简单,仅是解压自带的JRE并取代java.exe文件直接调度jvm.dll罢了。但就是这样一个小程序,却可以很轻松的实现Java软件的绿色发布。
以千里冰封兄的YOYOPlayer为例(冰封兄blog:http://www.blogjava.net/hadeslee/),我们都知道这是一个 非常之好的Java音乐播放器,在Java圈内已经小有名气。但遗憾的是,对比千千静听这类知名软件而言,了解它的人简直比华南虎还要稀有......虽 然软件普及率低的原因多种多样,但对Java应用而言,究其根本还是JVM安装的关系。就像“妈是女人”的道理一样,Java程序的运行环境必须有与其开 发版本兼容的JRE存在,否则无法运作。也就是这道门槛,不知把多少普通用户拦在了Java应用之外。
可能你会说这些是小事,的确,对我们这些Java程序员来讲当然不存在任何问题;但令人遗憾的是,对绝大多数普通用户,特别是并不成熟的中国数亿网民而言 (我是指软件知识的平均值……其实牛人也很多……),安装JRE这几乎是件不可想象的艰巨任务;除非他们有必须使用不可的理由,否则需要下载第三方软件的 程序,绝对是第一时间被pass掉的(一般人使用软件的准则就一条:简单就用,麻烦就不用);无形中大大增加了Java软件普及的难度,明明是很好的程 序,却只能在Java圈子里流传,不禁令人扼腕。
事实上,我们可以通过极简单的技术手段来突破这一限制,轻而易举将Java应用做成绿色软件,免除用户这些不必要犹豫,令他们放心大胆的使用Java程序。
这个过程仅仅需要三步:
1、压缩你的JRE:
目前GreenJVM支持rar和zip两种方式的解压。
2、设置vm.cfg:
vm.cfg内容配置如下:
[LOON]
/*虚拟机解压方式,0.1版仅提供RAR及ZIP两种,Windows平台下建议使用RAR(调用自带unrar.dll,故不要求本地
存在WinRAR,使用ZIP则可以删除unrar.dll)*/
SET_UNPACK_METHOD=rar
//虚拟机压缩包名称,要求配置在vm.cfg同路径下
SET_VM_NAME=jre.pack
//检测本地jvm版本,低于期望值时使用自带jvm,否则以本地虚拟机优先运行
SET_START_REQUIRE_VERSION=1.6
//期望加载的jar,多包以;分隔
SET_START_JAR_PATH=fps_test.jar
//期望执行的main类
SET_START_MAIN_CLASS=org/test/BallPanel
//选填,尝试从指定环境变量获取jvm路径,存在则优先运行本地jvm
//SET_START_ENV=JAVA_HOME
[LOON] /*虚拟机解压方式,0.1版仅提供RAR及ZIP两种,Windows平台下建议使用RAR(调用自带unrar.dll,故不要求本地 存在WinRAR,使用ZIP则可以删除unrar.dll)*/ SET_UNPACK_METHOD=rar //虚拟机压缩包名称,要求配置在vm.cfg同路径下 SET_VM_NAME=jre.pack //检测本地jvm版本,低于期望值时使用自带jvm,否则以本地虚拟机优先运行 SET_START_REQUIRE_VERSION=1.6 //期望加载的jar,多包以;分隔 SET_START_JAR_PATH=fps_test.jar //期望执行的main类 SET_START_MAIN_CLASS=org/test/BallPanel //选填,尝试从指定环境变量获取jvm路径,存在则优先运行本地jvm //SET_START_ENV=JAVA_HOME
3、发布应用,此时只需一个文件夹,就可以完全容纳下整个Java应用了。