`
2277259257
  • 浏览: 499357 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

将java程序导成.exe,在没有装jvm的机器上运行

 
阅读更多

 本人想将一个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,却不能运行。我检查了一下,添加文件的时候没有把项目下的文件夹添加进去,于是我又点“添加文件夹”,把文件夹也加进去,结果还是不行。记住了!!!只需要选“添加文件夹”,选择你的项目的根目录就行。

分享到:
评论

相关推荐

    java转exe程序

    exe4j,能够把写的java程序转成exe程序,打包时能把jre也打包进去,方便在没有JVM的机器上运行。

    java程序双击运行-双击jar文件运行程序.pdf

    3) 这时已经设置了使⽤javaw.exe应⽤程序来打开jar⽂件,可是实际上这时双击jar⽂件还是没有反应,这是因为没有设置打开⽂件参数导 致的。 4) 在Windows开始菜单的搜索框中输⼊"regedit",在上⽅搜索出的⽂件...

    jre-6u22-windows-i586-s.exe

    JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器...

    jvm指令手册 +JVM必知必会,掌握虚拟机编译过程.rar

    JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器...

    JDK是 Java 语言的软件开发工具包,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具 (java8)

    也就是说,只要在不同平台上安装对应的jvm,就可以运行字节码文件,运行java程序。 java核心类库是指java提供的一组基础类和接口,用于处理常见的任务和操作,例如字符串的操作,数组的操作,集合的操作,多线程,...

    初识java,用springBoot学习java.rar

    JRE:java运行环境,包含java程序运行的核心类库和JVM,如果只需要运行java程序而不是开发,则只安装JRE即可。 JVM:java虚拟机,它是将java代码编译成机器语言,实现java的跨平台。 第一个JAVA程序HelloWorld 1....

    Java 虚拟机学习笔记:Java 内存区域,垃圾收集,内存分配与回收策略,JVM 调优,文件结构,类加载机制,Java 程序

    JVM是Java的核心组成部分,它可以将Java代码解释成特定平台上的机器码,从而实现跨平台运行。 Java的可移植性使得它在各种设备和应用中得到广泛应用。它可以用于开发桌面应用程序、移动应用程序、Web应用程序、...

    这些不可不知的JVM知识.pdf

    JVM具备着计算机的基本运算方式,它主要负责把 Java 程序生成的字节码文件,解释成具体系统平台上的机器指令,让其在各个平台运行。 JVM是运行在操作系统上的,它与硬件没有直接的交互。 ❝ 当然,严格来说JVM也是...

    java环境搭建.docx

    JVM(java virtual machine java虚拟机):java程序会载入JVM,然后运行。 java核心类库:java程序在运行的过程中需要依赖一些库文件。 JDK(java development kit)  java开发工具。 JDK包含JRE,我们直接安装...

    java中jvm原理和实现

    JVM(Java Virtual Machine)是实现Java程序运行的核心部分,它是一个虚拟机,负责将Java字节码转换为机器码并执行。涉及到类加载器、运行时数据区、执行引擎和垃圾收集器等组件。JVM通过加载字节码文件,将其转换为...

    计算机二级Java语言复习资料

    只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。运行JVM字节码的工作是由解释器来完成的。解释执行过程分三步进行:代码的装入、代码的校验和代码的执行。

    java技术学习文档.docx

    Java基础知识 Java是一种面向对象的编程语言,它支持封装、继承和多态等面向对象的基本概念。Java具有静态类型检查机制,需要在编译时指定变量的...JVM是Java程序的运行环境,它可以将Java字节码转换为机器码并执行。

    「Java语言与面向对象程序设计-在线作业B答案」.docx

    Java程序设计语言要经过( )以便能在计算机上运行。 「Java语言与面向对象程序设计-在线作业B答案」全文共8页,当前为第3页。 「Java语言与面向对象程序设计-在线作业B答案」全文共8页,当前为第3页。 本地化 分析...

    JAVA 运行环境安装包

    Java运行环境(Java Runtime Environment,JRE)是一种用于执行Java程序的软件环境。它包含了Java虚拟机(Java Virtual Machine,JVM),以及Java核心类库和运行时所需的其他组件。 JRE的主要作用是提供Java应用...

    30道JVM综合面试题详解含答案(值得珍藏)

    JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 JVM包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个...

    简单实用JVM参数配置

    JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令...

    初步理解:jvm运行机制,java程序运行机制,堆栈详解,jvm调优的目的。

    谷咕咕最近在准备面试,本来想多看看堆和栈的关系,看看发现又设计到gc(Garbage Collection)垃圾回收机制,发现盲区太多了,就去粗略的学习了一下jvm(java虚拟机),发现之前只会写程序,底层的东西真是太丰富了...

    JVM原理讲解和调优

    Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台...

    java7rt.jar源码-Java_JVM:这是我的JavaJVM学习笔记

    执行 执行一个所谓的Java程序时,真正的执行的是一个叫做Java虚拟机的进程 3.退出 程序正常结束;程序遇到错误或异常时终止运行;Runtime或System类调用exit()方法或Runtime调用half()方法 JVM的框架: 执行引擎: ...

    JVM 相关知识的脑图介绍

    JVM(Java虚拟机)是Java程序的运行环境,它是一个虚拟的计算机,负责将Java字节码解释成机器码并执行。JVM提供了内存管理、垃圾回收、安全性等功能,使得Java程序具有跨平台性。JVM的结构包括类加载器、解释器、...

Global site tag (gtag.js) - Google Analytics