`
zhou304082042
  • 浏览: 32757 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java中class文件编译成exe文件的几种方法 (转)

    博客分类:
  • Java
阅读更多
1. JET
JET是一个优秀的Java语言本地编译器。但该编译器不是开源的,你可以从下面这个网站获得一个测试版本: 
http://www.excelsior-usa.com/jet.html 
或者 http://download.csdn.net/user/jonnyxu

2.exe4j
exe4j可以打包成各种格式的exe,可以把jar打包进exe,也可以引用一个外部的jar文件,还可以打包成windows服务的程序,并且可以设置最低jre的版本,还可以设定启动画面,虽然java6.0已经实现了这一点,但是还是没有exe4j生成的启动画面快。
下载地址:http://download.csdn.net/user/jonnyxu

3.install4j
install4j是一个功能强大的,多平台Java安装文件生成工具,用于生成Java应用程序本地化的安装及应用程序发布。 install4j的优异性在于它易于使用,紧密的集成到目标平台,以及灵活的JRE 管理与部署选项。
下载地址:http://download.csdn.net/user/jonnyxu

4.InstallAnywhere
下载地址:http://download.csdn.net/user/jonnyxu

5.IBM AlphaWorks
使用IBM AlphaWorks提供的一个高性能Java编译器,该编译器可以从下面的地址获得: 
http://www.alphaworks.ibm.com/tech/hpc 

6.Jar2Exe
    本软件可以将 Jar 文件转化为 Exe 可执行文件,使采用 Java 开发的软件更加方便地执行和发布,避免了采用批处理文件进行启动带来的麻烦。生成的 Exe 可执行文件可以自动从“注册表”、“环境变量”或者“配置文件”找到运行环境,并自动执行指定的启动类。
     本软件可以生成:“控制台程序”,“隐藏控制台的 Windows 窗口程序”以及“后台启动运行的 Windows NT 服务程序”三种类型的可执行文件。
下载地址:http://download.csdn.net/user/jonnyxu

7.JBuilder
这个工具不用多讲了,在jbuilder6.0以前的(包括6.0),是不能生成exe文件的,从jbuilder7.0开始都可以生成exe文件。 这个是Borland不公开的使用技巧,能够通过JBuilder来制作exe文件。
JBuilder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动Java程序,可以出现或者不出现console窗口。想做到这些,需要JBuilder的bin目录下的这些文件:
JBuilder.exe
JBuilderW.exe (可选)
JBuilder.config
jdk.config
JavaLauncher.dll
“JBuilder.exe”是一个通用的可执行外壳文件,用以启动Java程序,”JBuilderW.exe“好像是javaw.exe一样,它把”JBuilder.exe”包装起来,但是运行时候不显示那个console的窗口。使用这些文件的关键是文件名。“JBuilder.exe”查找一个文件叫”JBuilder.config”的配置文件,里面包含了运行Java程序的必须信息。同样的”JBuilderW.exe”查找”JBuilder.exe”来启动不带Console窗口的Java程序。如果把JBuilder.exe重命名为”foo.exe”,那”foo.exe”将去寻找”foo.config”配置文件,同样”JBuilderW.exe”被重命名为”fooW.exe”,它会去寻找”foo.exe”文件。
说到这里,聪明的读者应该猜到怎样利用JBuilder.exe来启动应用程序了。只要把JBuilder.exe,JBuilerW.exe,JBuilder.config改名成相应的文件名,在JBuilder.config里面指定主类和类路径,就能够通过执行JBuilder.exe(或者被改名后的exe文件)来启动Java应用程序了。下面是用本机为例。
Borland JBuilder 5被安装在E:\jbuilder5\目录下,在E:\jbuilder5\bin\下建立一个temp目录,然后把JBuilder.exe,JBuilder.config,JavaLauncher.dll,jdk.config四个文件拷贝到E:\jbuilder5\bin\temp\目录下,然后在这个目录下建立一个hello目录,在这个目录下生成一个hello.java文件,即E:\jbuilder5\bin\temp\hello\hello.java文件,
//hello.java/
package hello;
public class hello{
public static void main(String s[]){
System.out.println("Hello, Exe file!");
}
}
编译成class文件,然后打开Jbuilder.config文件,作相应的修改:
在JBuilder.config里面找到下面两行
# Start JBuilder using the its main class
mainclass com.borland.jbuilder.JBuilder
修改为
# Start JBuilder using the its main class
mainclass hello.hello
addpath E:/jbuilder5/bin/temp/
addpath命令是把目录加入类路径中,这个命令和其它config里面可以识别的命令可以在JBuilder/bin目录下的config_readme.txt里面找到详细说明。
然后将jdk.config里面的javapath修改成相对的路径,例如原来是
javapath ../jdk1.3/bin/java
修改成
javapath ../../jdk1.3/bin/java
最后
将JBuilder.exe,JBuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。
现在执行foo.exe文件
至此,通过修改JBuilder来使用exe文件启动自己的Java应用程序已经完成了。
但是好玩的地方并不在这个地方,下面的小技巧可能更有趣,将Jar文件打包进入exe文件!
假设利用上面的文件,生成hello.jar包,
jar cvf hello.jar hello\*.class
然后将jar包附加到JBuilder.exe后面去,
copy /b ..\JBuilder.exe+hello.jar foo.exe
在foo.config(JBuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径:
addpath E:/jbuilder5/bin/temp/foo.exe
然后执行,foo.exe
看到了么?一个含jar包的exe文件被执行了!
这个过程的大致原理是:exe文件的重要信息都在文件头部,所以把乱七八糟的东西放exe文件尾部是不要紧的;而jar/zip文件的重要信息是在文件尾部的,这样它们两不相干,能够容易的被执行。
请注意:读者如果使用这个功能,得自己承担可能带来的风险,因为Borland对这个功能不提供官方的支持!


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zjny520/archive/2008/12/31/3669459.aspx
分享到:
评论

相关推荐

    java class文件编译

    Java Class文件是Java程序经过编译后的二进制表示形式,它是Java虚拟机(JVM)执行的基础。本文将深入探讨Java类文件的结构、编译过程以及如何使用提供的工具进行查看。 一、Java类文件结构 Java源代码(.java文件...

    java class反编译工具

    在描述中提到的工具,是一个小巧而实用的Java Class反编译器,用户只需运行`.exe`可执行文件,然后选择要反编译的`.class`文件,即可在指定目录下生成对应的`.java`文件。 Java字节码是Java源代码经过编译后的中间...

    将JAVA编译为EXE的几种方法

    ### 将JAVA编译为EXE的几种方法 在IT领域中,将Java程序转换为Windows可执行文件(.exe)的需求十分常见。这不仅提高了应用程序的可用性,还简化了部署过程,使得非技术人员也能轻松运行Java应用。本文将详细介绍几...

    Java的class反编译工具

    在Java编程环境中,源代码会被编译成字节码(.class文件),这些字节码是机器不可读的,但是可以由Java虚拟机(JVM)执行。然而,有时我们需要查看或分析这些编译后的类文件,这时候就需要借助反编译工具。 标题中...

    将Java应用程序本地编译为EXE的几种方法

    将Java应用程序本地编译为EXE的几种方法(推荐使用JOVE和JET) 1. 从www.towerj.com获得一个TowerJ编译器,该编译器可以将你的CLASS文件编译成EXE文件。 2. 利用微软的SDK-Java 4.0所提供的jexegen.exe创建EXE文件,这...

    java反编译工具,class文件 反编译成代码

    Java程序首先被编译成字节码,这是一种中间表示,可以在任何支持Java虚拟机(JVM)的平台上运行。字节码是由`.class`文件组成的,每个文件对应一个类或接口。由于字节码是平台无关的,它不包含原始的源代码信息。反...

    教您将JAVA编译为EXE的几种简易方法

    本文将详细介绍几种简单易行的方法,帮助开发者将Java应用程序打包成EXE格式。 首先,我们可以使用Java的原生功能进行打包,但这并不能直接生成EXE。Java的jar命令可以创建包含所有依赖的JAR文件。然后,通过添加...

    查看java编译后的class文件的反编译工具.rar

    在开发过程中,源代码会被编译成字节码(.class文件),这是Java虚拟机(JVM)能够理解和执行的格式。然而,由于字节码是二进制形式,直接查看会非常困难,因此我们需要使用特定的工具来反编译这些.class文件,以...

    java class 文件反编译工具-简单实用

    Java Class文件是Java程序编译后的二进制代码,它包含了类、接口、方法和字段等信息。在没有源码的情况下,对这些二进制文件进行解析和理解可能是一项挑战,但有了Java类文件反编译工具,我们可以将Class文件转换回...

    java反编译(将class文件反向编译成java源文件)

    Java反编译是一种技术,它允许开发者从已编译的.class文件中恢复原始的.java源代码。这在一些情况下非常有用,例如分析第三方库的内部实现、研究代码逻辑或者在丢失源代码时恢复源码。Java编译器将源代码转换成字节...

    jd-gui java反编译class

    Java开发过程中,有时我们需要查看已编译的.class文件的源代码,这在没有源码或者想要理解二进制代码的工作原理时尤其有用。在这种情况下,`jd-gui` 工具是一个非常重要的辅助手段。`jd-gui` 是一个开源的Java反...

    把java文件做成exe

    在IT行业中,将Java程序转换为可执行的Windows EXE文件是一种常见的需求,这使得非Java开发者也能方便地运行程序。这个过程涉及到Java的跨平台特性和特定的工具,如EXE4J。下面我们将详细讲解如何利用EXE4J将Java...

    java class文件反编译工具软件

    常见的Java类文件反编译工具有以下几种: 1. **JD-GUI**:这是一个图形用户界面工具,可以直接打开Class文件并显示反编译后的源代码。它提供了快速查看和搜索类、方法、变量等功能,适合快速浏览和分析。 2. **JAD...

    Java将class文件反编译

    Java是一种广泛使用的面向对象的编程语言,其源代码文件通常以`.java`为扩展名,而编译后的字节码文件则以`.class`为扩展名。这些`.class`文件是Java虚拟机(JVM)运行的基础,它们包含了程序的机器可读指令。然而,...

    JAVA CLASS文件/bean反编译工具

    "JAVA CLASS文件/bean反编译工具"是一种实用的软件,它的主要功能是将这些二进制的CLASS文件转换回人类可读的Java源代码。这对于调试、学习或分析已有的Java程序非常有用,特别是当源代码丢失或不可用时。这类工具...

    javaClass反编译.pdf

    JavaClass文件的反编译是一项复杂但极其有用的技术,它可以帮助开发者理解第三方库的工作原理,进行软件逆向工程,甚至在安全领域发现潜在的漏洞。然而,由于编译过程中的信息损失以及代码优化等因素,反编译结果...

Global site tag (gtag.js) - Google Analytics