windows下打包java程序为带jre的可执行文件

2023-09-17 14:24

  windows下打包java程序为带jre的可执行文件 
   在这个制作过程中主要利用了Borland不公开的使用技巧,就是能够通过JBuilder来制作exe文件来启动Java文件。 (在网上可以查到具体的文章,可以见---JBuilder9制作EXE文件--)

    JBuilder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动Java 程序,可以出现或者不出现console窗口。需要JBuilder的bin目录下的这些文件: JBuilder.exe JBuilderW.exe  JBuilder.config jdk.config 。“JBuilder.exe”是一个通用的可执行外壳文件,用以启动Java程序,"JBuilderW.exe"好像是javaw.exe一样,它把"JBuilder.exe"包装起来运行时候不显示那个conso le的窗口。使用这些文件的关键是文件名。"JBuilder.exe"查找一个文件叫"JBuilder.config"的配置文件,里面包含了运行Java程序的必须信息。

   同上,先将JBuilder的bin目录下 JBuilder.exe,JBuilderW.exe,JBuilder.config,jdk.config 这三个文件拷贝到一个新文件夹中,我的是importdata。此外还有一个文件是 config_readme.html 也拷贝出来 ,这个文件说明了修改配置文件的一些参数语法。

    然后再找安java的主目录下的jre文件夹,将jre文件一并拷贝到  importdata 中,然后再找lib文件夹下的tool.jar文件拷贝到 importdata/jre/lib中(最安全的办法就是将java的主目录下lib的全部内容都拷贝到importdata/jre/lib)。如果还引入了其他的类库一并将那些类库的*.jar 文件拷贝到importdata/jre/lib中。这样java的运行环境就有了。

    将你做的程序生成.jar包,执行过程:

     jar cvf importdata.jar importframe/*.class

    importframe是我编译好的.class文件所在的文件夹,打包为importdata.jar 文件


     接下来就是修改配置文件。(用文本编辑器打开jdk.config和JBuilder.config)

     jdk.config 修改 

        查找 javahome    ../jdk1.5/       改为 ./jre/

        查找 addpath ../jdk1.5/lib/tools.jar     改为  ./jre/lib/tools.jar

    其他不需要更改

    JBuilder.config 修改

    # Add any configuration files located in the patch directory
    includedir ../patch

   如果这句保留  这句的话则将 includedir ../patch 改为 includedir ./patch 并在当前目录中建一个 patch 文件夹;不保留则 在includedir ../patch加 #。(A comment can be added using the "#" sign:  # This is a comment )

   # Enable peer to peer debugging
   addpath ../lib/jdi-extension.jar

   # Enable HotSpot Serviceablity Agent
    include sa.config

   这两行删掉或注释掉(加#)

   加入 addpath ./importdata.jar 即加入打包的importdata.jar 文件(必须)

  查找 # Make sure that DLL's in the lib directory also get picked up
   addlibpath ../lib

   改为addlibpath ./jre/lib

查找

# Add all JAR files located in the patch, lib and lib/ext directory
addjars ../patch
addjars ../lib
addjars ../lib/bes
addjars ../lib/servers
addjars ../lib/p2p
addjars ../lib/ext

改为

# Add all JAR files located in the patch, lib and lib/ext directory
addjars ./jre/lib
addjars ./jre/lib/ext
addjars ./jre/lib/im
addjars ./jre/lib/security

如果前面时候你保留了includedir ./patch  则在这边加入 addjars ./patch

最后 查找

     # Start JBuilder using the main class
     mainclass com.borland.jbuilder.JBuilder 

    改为

     # Start JBuilder using the main class
     mainclass importframe.ImportData

   这句话是确定要java执行时的开始类的位置mainclass,我这得程序为importframe.ImportData为主程序。

其他的也可以改 也可以不改。具体的语法见config_readme.txt的详细说明(建议将没用的去除)。

   如何利用JBuilder.exe来启动应用程序?只要把JBuilder.exe,JBuilerW.exe,JBuilder.config改名成相应的文件名,在JBuilder.config里面指定主类和类路径,就能够通过执行JBuilder.exe(或者被改名后的exe文件)来启动Java应用程序了。

   我这里将 JBuilder.exe和JBuilderW.exe改为import.exe,importw.exe 相应的配置文件改为JBuilder.config改为import.config

    到此为止 ,你可以双击importw.exe 开启你的java程序了。此时你可以将做好的程序放到没有java运行环境的机器上试试。是不是大功告成了?如果没成功可以在命令窗口运行import.exe看看是什么错误然后修改配置文件就可以了。

最后要说一点就是修改那个importw.exe 的图标。做好一个程序不能还用JBuilder的图标 那样多不爽阿 ,要修改只能借助其他的软件了,我推荐一个叫ResHacker软件。

下载地址http://www.nigeriaembassy.cn/resourcehacker/ 

具体用法见帮助 据说这款软件很牛。

下载自己想要的图标,利用来替换importw.exe或import.exe图标。

我感觉运行这两个文件也没多大的区别。

到此为止了,就这样就配置好了一个带jre的可执行文件。

如有什么问题,可以留言 。一起讨论一下!

分享到搜狐微博