本人想将一个java小程序打包成.exe的形式,并让它能在没有装jvm的机器上运行。在网上查了好多资料总算成功了,感谢网络,阿门!!!现将方法贴出来。
一、首先下一个exe4j 。它是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具。
它的安装和使用可参考:http://hi.baidu.com/jsoftware/blog/item/c483eadd2d98b5315882dde6.html ,写的很详细。
这篇帖子也值得一看:http://topic.csdn.net/u/20080709/08/c892b6ce-db86-434b-a969-20a524817786.html。楼主最后的结论让我茅塞顿开:
“1、exe4j是不可以将jre直接打包进exe中去的。但exe4j提供了一个搜索jre路径,这个路径可以是系统的环境变量,也可以是注册表,也可以是具体的某路径。
由于要实现在没有jvm的电脑上运行,搜索环境变量与注册表自然是无用功的了,所以只能搜某路径的。把jre的路径,加进去,就行了。但要注意一点:不然用绝对路径哦。我之前就是用绝对路径,导致无效的,而走了弯路的。比如可以用:./jre
2、打成安装包时,要将生成的exe文件与jre一起打包。为了确认打完包,可以用,在没打包之前,点该exe文件,要确认能运行,不然打包要白忙了。
”
二、 这是我的程序文件的截图:
那个tank.jar 是用MyEclipse 将程序导出的jar文件,jre 就是你的机子上安装的jre目录(JDK里面)直接拷过来的。你要想让你的程序在别人没装jre的机器上运行,就得把jre拷到你的项目下。
三、在用exe4j的时候,关键就是设置jre那步
点击 Search sequence后
把这些默认的查找目录去掉,点绿色的“+”,
把你拷到项目下的jre选上。这样下去一直点下一步,基本就ok了。
可以看到我的目录下多了个它生成的 MyTank.exe。
把这下面的所有东西用WINRAR打包,到别人没有jvm的机子上,解压,双击就可以运行了。我之前很SB地只把那个.exe文件拷过去,怎么也运行不了,呵呵(连jre都没有,怎么运行?所以刚才那个配置jre的过程就是让它能找到jre,你自带的jre)。
四、 我用winrar打包后大小是31.8M ,然后我又试了试用Inno SetUp 将它打包成一个安装包,大小是20.1M。
Inno SetUp的使用很简单,不过我还是犯了一个错误,
在下面的“其他应用程序文件”中,只需要选“添加文件夹”,选择你的项目的根目录,在弹出的“是否将子文件夹中的文件也包括在内”对话框选是,就可以了。我之前点“添加文件”,然后把目录下的文件都选择,导出得到的.exe文件虽然也是20.1M,却不能运行。我检查了一下,添加文件的时候没有把项目下的文件夹添加进去,于是我又点“添加文件夹”,把文件夹也加进去,结果还是不行。记住了!!!只需要选“添加文件夹”,选择你的项目的根目录就行。
相关推荐
exe4j,能够把写的java程序转成exe程序,打包时能把jre也打包进去,方便在没有JVM的机器上运行。
3) 这时已经设置了使⽤javaw.exe应⽤程序来打开jar⽂件,可是实际上这时双击jar⽂件还是没有反应,这是因为没有设置打开⽂件参数导 致的。 4) 在Windows开始菜单的搜索框中输⼊"regedit",在上⽅搜索出的⽂件...
JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器...
JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器...
也就是说,只要在不同平台上安装对应的jvm,就可以运行字节码文件,运行java程序。 java核心类库是指java提供的一组基础类和接口,用于处理常见的任务和操作,例如字符串的操作,数组的操作,集合的操作,多线程,...
JRE:java运行环境,包含java程序运行的核心类库和JVM,如果只需要运行java程序而不是开发,则只安装JRE即可。 JVM:java虚拟机,它是将java代码编译成机器语言,实现java的跨平台。 第一个JAVA程序HelloWorld 1....
JVM是Java的核心组成部分,它可以将Java代码解释成特定平台上的机器码,从而实现跨平台运行。 Java的可移植性使得它在各种设备和应用中得到广泛应用。它可以用于开发桌面应用程序、移动应用程序、Web应用程序、...
JVM具备着计算机的基本运算方式,它主要负责把 Java 程序生成的字节码文件,解释成具体系统平台上的机器指令,让其在各个平台运行。 JVM是运行在操作系统上的,它与硬件没有直接的交互。 ❝ 当然,严格来说JVM也是...
JVM(java virtual machine java虚拟机):java程序会载入JVM,然后运行。 java核心类库:java程序在运行的过程中需要依赖一些库文件。 JDK(java development kit) java开发工具。 JDK包含JRE,我们直接安装...
JVM(Java Virtual Machine)是实现Java程序运行的核心部分,它是一个虚拟机,负责将Java字节码转换为机器码并执行。涉及到类加载器、运行时数据区、执行引擎和垃圾收集器等组件。JVM通过加载字节码文件,将其转换为...
只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。运行JVM字节码的工作是由解释器来完成的。解释执行过程分三步进行:代码的装入、代码的校验和代码的执行。
Java基础知识 Java是一种面向对象的编程语言,它支持封装、继承和多态等面向对象的基本概念。Java具有静态类型检查机制,需要在编译时指定变量的...JVM是Java程序的运行环境,它可以将Java字节码转换为机器码并执行。
Java程序设计语言要经过( )以便能在计算机上运行。 「Java语言与面向对象程序设计-在线作业B答案」全文共8页,当前为第3页。 「Java语言与面向对象程序设计-在线作业B答案」全文共8页,当前为第3页。 本地化 分析...
Java运行环境(Java Runtime Environment,JRE)是一种用于执行Java程序的软件环境。它包含了Java虚拟机(Java Virtual Machine,JVM),以及Java核心类库和运行时所需的其他组件。 JRE的主要作用是提供Java应用...
JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 JVM包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个...
JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令...
谷咕咕最近在准备面试,本来想多看看堆和栈的关系,看看发现又设计到gc(Garbage Collection)垃圾回收机制,发现盲区太多了,就去粗略的学习了一下jvm(java虚拟机),发现之前只会写程序,底层的东西真是太丰富了...
Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台...
执行 执行一个所谓的Java程序时,真正的执行的是一个叫做Java虚拟机的进程 3.退出 程序正常结束;程序遇到错误或异常时终止运行;Runtime或System类调用exit()方法或Runtime调用half()方法 JVM的框架: 执行引擎: ...
JVM(Java虚拟机)是Java程序的运行环境,它是一个虚拟的计算机,负责将Java字节码解释成机器码并执行。JVM提供了内存管理、垃圾回收、安全性等功能,使得Java程序具有跨平台性。JVM的结构包括类加载器、解释器、...