让我们写的java程序像exe(..bat)一样运行
2013-06-06 21:55
357 查看
原文链接:http://huangzhir.iteye.com/blog/1883209
java 运行一个程序,用 java 包名.类名
如下
这是建立在java 环境变量(PATH,CLASSPATH)已经配置好了,而且没有依赖包的情况下。
要了解环境变量,就要来说JDK,JRE,JVM的关系。
引用 http://www.myexception.cn/program/1050343.html
引用
JDK,JRE与JVM浅析(整理)
使用Java -version是如何找到版本的:它是从C:\Program Files\Java\{jre文件夹名}\lib\i386中的jvm.cfg中读取的。
JDK(java develop kit ,java开发套件),JRE(java runtime environment,java运行时环境),JVM(java virtual machine,java虚拟机)
JDK
++
|-----jre
++
|-------jvm
|-------
jre只是jdk的一个部分,我们只要拥有了一份jdk就可以进行java程序开发了,而顾名思义,jre是java运行的时候所依赖的平台,jvm则更只是jre的一个部分,jre除了虚拟机外还提供了众多链接库,这些库会被jvm在运行时调用。
我们会发现java_home/下有一个bin文件夹和一个jre文件夹,而jre文件夹下也有一个bin文件夹,它们一样吗?显然不一样。
java_home/bin中的工具是sun公司提供给我们一些工具,如java.exe,javac.exe,而jre/bin下的工具是运行时所需的,于是我们可以发现java_home/bin下有一个javac.exe,而jre/bin下肯定没有javac.exe,这是很容易解释的。
奇怪的是,sun公司给我们提供了两套jre,稍留意一下我们就会发现在装完jdk,还可以选择装一个jre,这个jre是被默认装到 C:\Program Files\Java下的。sun提供两套jre是有道理的,如果我们只是想运行java程序,那么去官网下一个jre就行了,而无需拿来一个jdk,如果是要开发java程序那就需要一个jdk了."jdk里面的工具几乎都是用java写的,所以jdk本身就是java应用程序,因此要使用jdk附的工具来开发java程序也必须要自行附一套jre才行,这就是java_home\jre存在的原因,而位于Program
File\jre的那套jre就是拿来执行我们自己写的java应用程序的。不过,两套中任何一套jre都可以拿来执行我们所写的java应用程序,可是 jdk内附的开发工具在预设开发工具使用包装器(.exe)来启动的情况下,都拿自己支选用java_home\jre".(《Java深度历险》)
因此,现在可以明白设path和classpath的作用了:
path是为jdk提供的那些工具设的,如java.exe,javac.exe 。
classpath是为java程序所用到的库文件所设的 。
如果 java 环境变量已经配置好了,但有依赖包,这样就要设置CLASSPATH
如果要用相对路径可以用(CLASSPATH有多个用;隔开)
如果 java 环境变量的path,也没设置,就是说你执行java时,也就找不到命令。
这时执行时可以用 jre 里面的java的直接路径来运行。(jre 的绝对路径有空格,路径用“”包)
如下,
也可以设置path
如果想给jvm多分配点内存可用
可用相对路径,程序写完后,让别人下载,但别人机器可以没jre.或者没配置,这时可以把jre跟程序放一起让用户下载,直接就可以运行。
把jre放在程序上一级中。
如:
把上面的命名成一个 XXX.bat 名字,
然后建立一个快捷方式,把快捷方式设置成指向XXX.bat ,把快捷方式图标设置成你的图标。
这样就可以exe一样执行了,还是绿色版本的,免安装。就是jre比较大点,有60M左右
程序目录
图标文件
快捷方式文件,指向 XXX.bat,加你的图标
bin\
你的写的程序.jar
XXX.bat
jre
jre文件
lib\
依赖包
%~dp0
为批处理符号
个人理解为 当前执行的批处理所在的目录
java 运行一个程序,用 java 包名.类名
如下
java com.java.Test
这是建立在java 环境变量(PATH,CLASSPATH)已经配置好了,而且没有依赖包的情况下。
要了解环境变量,就要来说JDK,JRE,JVM的关系。
引用 http://www.myexception.cn/program/1050343.html
引用
JDK,JRE与JVM浅析(整理)
使用Java -version是如何找到版本的:它是从C:\Program Files\Java\{jre文件夹名}\lib\i386中的jvm.cfg中读取的。
JDK(java develop kit ,java开发套件),JRE(java runtime environment,java运行时环境),JVM(java virtual machine,java虚拟机)
JDK
++
|-----jre
++
|-------jvm
|-------
jre只是jdk的一个部分,我们只要拥有了一份jdk就可以进行java程序开发了,而顾名思义,jre是java运行的时候所依赖的平台,jvm则更只是jre的一个部分,jre除了虚拟机外还提供了众多链接库,这些库会被jvm在运行时调用。
我们会发现java_home/下有一个bin文件夹和一个jre文件夹,而jre文件夹下也有一个bin文件夹,它们一样吗?显然不一样。
java_home/bin中的工具是sun公司提供给我们一些工具,如java.exe,javac.exe,而jre/bin下的工具是运行时所需的,于是我们可以发现java_home/bin下有一个javac.exe,而jre/bin下肯定没有javac.exe,这是很容易解释的。
奇怪的是,sun公司给我们提供了两套jre,稍留意一下我们就会发现在装完jdk,还可以选择装一个jre,这个jre是被默认装到 C:\Program Files\Java下的。sun提供两套jre是有道理的,如果我们只是想运行java程序,那么去官网下一个jre就行了,而无需拿来一个jdk,如果是要开发java程序那就需要一个jdk了."jdk里面的工具几乎都是用java写的,所以jdk本身就是java应用程序,因此要使用jdk附的工具来开发java程序也必须要自行附一套jre才行,这就是java_home\jre存在的原因,而位于Program
File\jre的那套jre就是拿来执行我们自己写的java应用程序的。不过,两套中任何一套jre都可以拿来执行我们所写的java应用程序,可是 jdk内附的开发工具在预设开发工具使用包装器(.exe)来启动的情况下,都拿自己支选用java_home\jre".(《Java深度历险》)
因此,现在可以明白设path和classpath的作用了:
path是为jdk提供的那些工具设的,如java.exe,javac.exe 。
classpath是为java程序所用到的库文件所设的 。
如果 java 环境变量已经配置好了,但有依赖包,这样就要设置CLASSPATH
set CLASSPATH=d:\aa.jar;D:\lib\*; java com.java.Test
如果要用相对路径可以用(CLASSPATH有多个用;隔开)
set MY_HOME=%~dp0 set CLASSPATH=%MY_HOME%xxx.jar; %MY_HOME%..\lib\*; java com.java.Test
如果 java 环境变量的path,也没设置,就是说你执行java时,也就找不到命令。
这时执行时可以用 jre 里面的java的直接路径来运行。(jre 的绝对路径有空格,路径用“”包)
如下,
set MY_HOME=%~dp0 set CLASSPATH=%MY_HOME%xxx.jar;%MY_HOME%..\lib\*; set JAVACMD=“D:\Program Files\MyEclipse 6.5\jre\bin\java” %JAVACMD% com.java.Test
也可以设置path
set MY_HOME=%~dp0 set CLASSPATH=%MY_HOME%xxx.jar;%MY_HOME%..\lib\*; set PATH="D:\Program Files\MyEclipse 6.5\jre\bin" java com.java.Test
如果想给jvm多分配点内存可用
set MY_HOME=%~dp0 set CLASSPATH=%MY_HOME%xxx.jar;%MY_HOME%..\lib\*; set PATH="D:\Program Files\MyEclipse 6.5\jre\bin" set JAVA_OPTS=-Xms128m -Xmx256m java %JAVA_OPTS% com.java.Test
可用相对路径,程序写完后,让别人下载,但别人机器可以没jre.或者没配置,这时可以把jre跟程序放一起让用户下载,直接就可以运行。
把jre放在程序上一级中。
如:
set MY_HOME=%~dp0 set CLASSPATH=%MY_HOME%xxx.jar;%MY_HOME%..\lib\*; set PATH=%~dp0..\jre\bin set JAVA_OPTS=-Xms128m -Xmx256m java %JAVA_OPTS% com.java.Test
把上面的命名成一个 XXX.bat 名字,
然后建立一个快捷方式,把快捷方式设置成指向XXX.bat ,把快捷方式图标设置成你的图标。
这样就可以exe一样执行了,还是绿色版本的,免安装。就是jre比较大点,有60M左右
程序目录
图标文件
快捷方式文件,指向 XXX.bat,加你的图标
bin\
你的写的程序.jar
XXX.bat
jre
jre文件
lib\
依赖包
%~dp0
为批处理符号
个人理解为 当前执行的批处理所在的目录
相关文章推荐
- Atitit.Java exe bat 作为windows系统服务程序运行
- C#像运行一个exe 程序一样运行一个dll文件
- 使用installanywhere打包java文件生成任何平台都可以运行的程序(如.exe)(关闭360!)
- 使用bat运行java程序
- 利用Bat处理文件,快速地运行java程序
- JDK环境下,bat文件启动Java程序(类似于命令行文件运行java),可用来制作小工具。
- bat运行java程序——jar包的引入
- java程序在Eclipse打包成jar程序并在机器中用bat运行
- 【转】java程序打包成exe:一键安装双击运行——Java脱离jre安装程序制作
- 用exe4j软件打包java程序,运行exe文件,报错:please reinstall or define exe4j_java_home to point to an installed
- Eclipse工程目录下建立bat文件运行Java程序
- 运行Java程序批处理bat
- 把java编的程序包装成其他机器windows下可运行的exe
- eclipse运行程序报 DDMS files not found: D:\Java\SDK\tools\hprof-conv.exe
- Bat文件执行java命令,报:javac不是内部或外部命令,也不是可运行的程序或批处理文件
- java程序打包成为可运行的exe文件
- 初试.bat文件运行java程序
- 用myeclipse如何将java程序生成一个.exe可运行文件?
- 如何把一个java程序打包成exe文件,运行在没有java虚拟机
- java打开指定文件(运行指定程序exe)