java程序如何可以在任何机器上双击运行
2008-07-18 15:41
369 查看
在安装好了JRE的机器上的任何一个目录下都可以执行java.exe。因为它在安装时被复制到了windows的system32目录下,而后者无论如何都会在path环境变量中。这个java.exe
最终必然会访问注册表来确定真正的JRE的所在地。如果我们没有安装JRE而只是安装了jdk那么我们就需要设定环境变量,当环境变量设定好了之后,我们就可以在任意目录下执行
javac.exe或java.exe。若我们要求每一个应用程序都自带JRE,这两种办法都不行。但,java.exe会在它的父目录下查找JRE。
假设我们的应用程序打好了包,叫做JavaApplication.jar,放在JavaCode的目录下。我们在JavaCode目录下,可以执行java -jar JavaApplication.jar来运行我们的程序。
我们安装的JRE 在d:/Java/jre1.5.0下。现在,我们只需要将jre1.5.0目录复制到JavaCode目录下,改个比较容易写的名字比如叫jre。现在,JavaCode目录中有如下的内容:
JavaCode :
JavaApplication.jar
Jre:
Jre1.5.0目录下的全部内容(不包括Jre1.5.0目录本身,主要包括其中的bin目录和lib目录)
Java.exe就在jre目录下的bin目录中。java.exe会在它的父目录中查找jre,实验证实,它会查找lib目录,而lib就在jre目录下。因此,这样java.exe就会确定jre的所在然后正常
执行java程序,不会去管我们是否安装了JRE,注册表中是否有注册项这些杂事了。
检查一下是否使用了JavaCode目录下的JRE
运行cmd在命令行下进入JavaCode的目录(假设它在E盘),将path指向JavaCode下的JRE:
set path=e:/JavaCode/jre/bin
java -verbose -jar JavaApplication.jar
JRE 1.5有70MB作为私有JRE显然太大了,但其中好多内容都是可以不要的。Jre目录下的license都可以不要,bin下的执行文件只需要保留java.exe或者javaw.exe,lib下只要
保留rt,jsse,jce,charsets几个库就可以了。除了i386和zi两个子目录外,其余的子目录都可以不要。Zi下只需要保留自己地区的子目录和其下的一些文件就可以。Lib下除了
库之外的属性文件等等都要保留。每次清理调一些不要的内容都要运行几遍我们的应用程序,以确保我们的JRE不缺少东西。
如果我们希望能像VC等一样有的.exe文件可以直接直接启动我们的应用程序,那么最简单的方法是写一个P处理教本。
在一个.txt文件中比如说Autotun.txt像这样写:
set path=../jre/bin
java -jar JavaApplication.jar
这样在Java程序启动时,加载的DOS窗口一直出现,直到你关闭了Java程序才一起关闭。如果你想在运行你的程序时避免这个DOS窗口可以这样写:
start javaw -jar JavaApplication.jar
DOS窗口还是会一闪而过,因为javaw是一个需要dos加载的命令。
然后这个.txt文件的后缀txt改成bat或cmd。最后将这个脚本Autotun.bat或Autotun.cmd放在JavaCode目录下即可
文章原址:http://www.softhouse.com.cn/news/show/20147.html
最终必然会访问注册表来确定真正的JRE的所在地。如果我们没有安装JRE而只是安装了jdk那么我们就需要设定环境变量,当环境变量设定好了之后,我们就可以在任意目录下执行
javac.exe或java.exe。若我们要求每一个应用程序都自带JRE,这两种办法都不行。但,java.exe会在它的父目录下查找JRE。
假设我们的应用程序打好了包,叫做JavaApplication.jar,放在JavaCode的目录下。我们在JavaCode目录下,可以执行java -jar JavaApplication.jar来运行我们的程序。
我们安装的JRE 在d:/Java/jre1.5.0下。现在,我们只需要将jre1.5.0目录复制到JavaCode目录下,改个比较容易写的名字比如叫jre。现在,JavaCode目录中有如下的内容:
JavaCode :
JavaApplication.jar
Jre:
Jre1.5.0目录下的全部内容(不包括Jre1.5.0目录本身,主要包括其中的bin目录和lib目录)
Java.exe就在jre目录下的bin目录中。java.exe会在它的父目录中查找jre,实验证实,它会查找lib目录,而lib就在jre目录下。因此,这样java.exe就会确定jre的所在然后正常
执行java程序,不会去管我们是否安装了JRE,注册表中是否有注册项这些杂事了。
检查一下是否使用了JavaCode目录下的JRE
运行cmd在命令行下进入JavaCode的目录(假设它在E盘),将path指向JavaCode下的JRE:
set path=e:/JavaCode/jre/bin
java -verbose -jar JavaApplication.jar
JRE 1.5有70MB作为私有JRE显然太大了,但其中好多内容都是可以不要的。Jre目录下的license都可以不要,bin下的执行文件只需要保留java.exe或者javaw.exe,lib下只要
保留rt,jsse,jce,charsets几个库就可以了。除了i386和zi两个子目录外,其余的子目录都可以不要。Zi下只需要保留自己地区的子目录和其下的一些文件就可以。Lib下除了
库之外的属性文件等等都要保留。每次清理调一些不要的内容都要运行几遍我们的应用程序,以确保我们的JRE不缺少东西。
如果我们希望能像VC等一样有的.exe文件可以直接直接启动我们的应用程序,那么最简单的方法是写一个P处理教本。
在一个.txt文件中比如说Autotun.txt像这样写:
set path=../jre/bin
java -jar JavaApplication.jar
这样在Java程序启动时,加载的DOS窗口一直出现,直到你关闭了Java程序才一起关闭。如果你想在运行你的程序时避免这个DOS窗口可以这样写:
start javaw -jar JavaApplication.jar
DOS窗口还是会一闪而过,因为javaw是一个需要dos加载的命令。
然后这个.txt文件的后缀txt改成bat或cmd。最后将这个脚本Autotun.bat或Autotun.cmd放在JavaCode目录下即可
文章原址:http://www.softhouse.com.cn/news/show/20147.html
相关文章推荐
- 如何让你的java程序可以在任何机器上双击运行
- 如何让你的java程序可以在任何机器上单击运行
- 使用installanywhere打包java文件生成任何平台都可以运行的程序(如.exe)(关闭360!)
- 如何导出Java项目成为一个可以直接双击运行的jar文件的问题
- 【转】如何配置EditPlus中Java运行环境,运行Java程序
- java程序代写如何运行用记事本写的java程序
- [置顶] 如何运行用记事本写的java程序
- 双击运行JAVA程序
- Linux 下如何运行Engine Java 程序
- 如何配置EditPlus编译运行Java程序
- java如何计算程序运行时间
- 如何把VS2008上编的debug、release程序在没装VS的xp机器上运行
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- 短信猫 centos 6.3 使用 smslib 3.5.2 发短信 java.lang.InstantiationException的解决办法,附带 可以运行的程序。
- 如何把java项目(java文件)打包成.jar文件,双击即可运行.
- 如何用命令行编译、运行第一个java程序(Hello World!)
- java 如何取得程序运行的当前路径
- 怎么将java项目打包成双击就可以运行的jar包---fatjar
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优