当前位置:  技术问答>java相关

请问如何把Java程序变成exe文件

    来源: 互联网  发布时间:2015-09-03

    本文导语:  写好java程序后,如何把它变成可执行文件? | 简单的,在任何.bat中加入: path=d:jdk1.3bin. java -jar your.jar 存盘就行了,我的系统是win2000,我就是这么做的 这个是Borland不公开的使用技巧,能...

写好java程序后,如何把它变成可执行文件?

|
简单的,在任何.bat中加入:
path=d:jdk1.3bin.
java -jar your.jar
存盘就行了,我的系统是win2000,我就是这么做的



这个是Borland不公开的使用技巧,能够通过JBuilder来制作exe文件来启动Java文件。 

JBuilder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动Java 

程序,可以出现或者不出现console窗口。想做到这些,需要JBuilder的bin目录下的这些文 

件: 

JBuilder.exe 

JBuilderW.exe (可选) 

JBuilder.config 

jdk.config 

JavaLauncher.dll 

“JBuilder.exe”是一个通用的可执行外壳文件,用以启动Java程序,”JBuilderW.exe“ 

好像是javaw.exe一样,它把”JBuilder.exe”包装起来,但是运行时候不显示那个conso 

le的窗口。使用这些文件的关键是文件名。“JBuilder.exe”查找一个文件叫”JBuilder.c 

onfig”的配置文件,里面包含了运行Java程序的必须信息。同样的”JBuilderW.exe”查找 

”JBuilder.exe”来启动不带Console窗口的Java程序。如果把JBuilder.exe重命名为”foo 

.exe”,那”foo.exe”将去寻找”foo.config”配置文件,同样”JBuilderW.exe”被重命 

名为”fooW.exe”,它会去寻找”foo.exe”文件。 

说到这里,聪明的读者应该猜到怎样利用JBuilder.exe来启动应用程序了。只要把JBui 

lder.exe,JBuilerW.exe,JBuilder.config改名成相应的文件名,在JBuilder.config里面指 

定主类和类路径,就能够通过执行JBuilder.exe(或者被改名后的exe文件)来启动Java应用程 

序了。下面是用本机为例。 

Borland JBuilder 5被安装在E:jbuilder5目录下,在E:jbuilder5bin下建立一个temp 

目录,然后把JBuilder.exe,JBuilder.config,JavaLauncher.dll,jdk.config四个文件 

拷贝到E:jbuilder5bintemp目录下,然后在这个目录下建立一个hello目录,在这个目录 

下生成一个hello.java文件,即E:jbuilder5bintemphellohello.java文件, 

//hello.java 

package hello; 

public class hello{ 

    public static void main(String s[]){ 

        System.out.println("Hello, Exe file!"); 

    } 



编译成class文件,如图18-14: 

图18-14 编译所有java文件 

然后打开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里面可以识别的命令可以在 

JBu 

ilder/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文件 

可以看到执行的结果如图18-15: 

图18-15 执行foo.exe后的运行结果 

至此,通过修改JBuilder来使用exe文件启动自己的Java应用程序已经完成了。 

但是好玩的地方并不在这个地方,下面的小技巧可能更有趣,将Jar文件打包进入exe文件! 

假设利用上面的文件,生成hello.jar包,执行过程和运行结果如图18-16: 

jar cvf hello.jar hello*.class 

图18-16 将类文件打包成exe文件 

然后将jar包附加到JBuilder.exe后面去,执行过程如图18-17: 

copy /b ..JBuilder.exe+hello.jar foo.exe 

图18-17 将jar文件转化成exe文件 

在foo.config(JBuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径: 

addpath E:/jbuilder5/bin/temp/foo.exe 

然后执行,执行结果如图18-18: 

foo.exe 

图18-18 变成exe文件的jar文件执行结果 

看到了么?一个含jar包的exe文件被执行了! 

这个过程的大致原理是:exe文件的重要信息都在文件头部,所以把乱七八糟的东西放exe文 

件尾部是不要紧的;而jar/zip文件的重要信息是在文件尾部的,这样它们两不相干,能够容 

易的被执行。 

请注意:读者如果使用这个功能,得自己承担可能带来的风险,因为Borland对这个功能不 

提供官方的支持!


另外可以下载一个叫做Excelsior JET的软件,用jdk1.4配合它的2.5版,可以将.class文件或java的工程转化为.exe文件.有需要的可以找我要,我的qq是
8844755,我的e-mail是:chch771203@163.com.

    
 
 

您可能感兴趣的文章:

  • 请问变成大写或者变成小写的函数是什么
  • 请问我怎样可以由原来的图形界面登陆变成文字登陆?
  • 请问如何才能让REDHAT 7.3的省缺语言变成英文。
  • 请问用JBuilder开发Applet,如果把鼠标指针变成漏斗?
  • 请问在linux下如何将整数变成char类型?
  • 请问我向Oracle库中写汉字,全部变成了乱码,怎样解决啊,急
  • 在ACC变成中要使用发ftp传送文件,但文件名不确定,请问怎么样在程序的FTP中使用字符串变量???
  • turbolinux10中原来是英文操作系统,现在想变成支持中文,请问有什么好方法,如果能通过增加中文包来解决,请提供一点详细的资料。
  • 请问如何把Applet默认的从屏幕上放向下放生长的Y坐标变成从下向上生长的?
  • 我的shell打开的时候,前面的提示符变成了:bash-3.00#,请问如何修改?
  • 请问AWK或VI如何将源文件中的连续空行变成一个?谢谢了!
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 菜问题:请问如何根据文件中的一段内容查找文件路径和文件名称,在线等候
  • 请问有将class文件转换为可执行文件(如Windows下的exe文件)的工具吗?
  • 请问,有什么办法可以把html文件生成pdf/excel格式的文件
  • 请问Qt的工程文件,如何转成VC的工程文件??
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • 请问哪里能找到Curses 的头文件和库文件?
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 我装了一个cygwin,却说找不到cybiconv-2.dll这个文件。请问这个文件在哪?
  • 如何删除前面有个-的文件,我的根目录下有个文件叫 -C,请问如何删除?
  • 请问LINUX内核下,哪些文件夹下的文件是跟LINUX的硬件平台无关的?
  • 请问如何把.po文件转成.mo文件?
  • 请问bash中如何获取一个项目目录下的执行文件的文件名?
  • 请问用JBUILDER7怎么把一个.class文件转变为.exe 文件,请具体说明一下,谢谢了!
  • 请问unix下修改文件和文件夹读写权限的问题
  • 请问如何才能将大量文件合并成一个文件并去除所有空行?
  • 请问如何使客户端浏览器一定下载某个文件,而不是打开该文件(哪怕这个文件是HTML或JPG)?
  • 请问如何动态命名重定向输出文件名,并将内容输出到该文件?
  • 请问如何从完整的路径加文件名中得到这个文件名?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!
  • 请问linux下GUI开发的问题!
  • 请问出现fstab文件丢失该怎么修复呀?
  • 请问这个方法如何调用?
  • 请问一个奇怪的问题!
  • 请问在网页中打开的新窗口,如何让其居中。
  • 请问我该学什么了
  • 请问安装zhcon,cxterm问题
  • 非常急! 请问daemontools 在red hat 9下的安装问题? 在线等待
  • 请问如何在一台单机上装VMware的网络访问问题?
  • (急)请问大侠,JDK怎么配置?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3