- 浏览: 484855 次
- 性别:
- 来自: 南阳
文章分类
最新评论
-
yuanhongb:
这么说来,感觉CGI和现在的JSP或ASP技术有点像啊
cgi -
draem0507:
放假了还这么勤啊
JXL操作Excel -
chenjun1634:
学习中!!
PHP/Java Bridge -
Jelen_123:
好文章,给了我好大帮助!多谢!
hadoop安装配置 ubuntu9.10 hadoop0.20.2 -
lancezhcj:
一直用job
Oracle存储过程定时执行2种方法(转)
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四个文件拷贝到:\jbuilder5\bin\temp\目录下,然后在这个目录下建立一个hello目录,在这个目录下生成一个hello.java文件,即e:\jbuilder5\bin\temp\hello\hello.java文件,file://hello.java/package hello;
public class hello{
public static void main(string s[]){
system.out.println("hello, exe file!");
}
}
然后打开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
将类文件打包成exe文件
然后将jar包附加到jbuilder.exe后面去.
copy /b ..\jbuilder.exe+hello.jar foo.exe
将jar文件转化成exe文件
在foo.config(jbuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径:
addpath e:/jbuilder5/bin/temp/foo.exe
然后执行.
看到了么?一个含jar包的exe文件被执行了!
这个过程的大致原理是:exe文件的重要信息都在文件头部,所以把乱七八糟的东西放exe文件尾部是不要紧的;而jar/zip文件的重要信息是在文件尾部的,这样它们两不相干,能够容 易的被执行。
1.先生成.jar包,再生成.exe文件
编写manifest.mf文件
manifest.mf中的内容:
Manifest-Version: 1.0
Main-Class:test.Application1
Created-By:snowpine
只有Main-Class是有用的,“Created-By: snowpine”是指这个.jar文件的作者
比如你有个Application1.class文件,在d:\test下,那么把manifest.mf放在d:\就可以了。
然后在d:\运行,jar cvfm test.jar manifest.mf test,就可以在d:\下生成test.jar
然后利用exe4j可以生成.exe的可执行文件 注: .exe必须在装有jdk机器才能运行
2.jbuider编辑器生成.exe文件
执行wizards—native executable builder—全部next,完成后,在编译一次,就自动生成了.exe文件
3.在jbuilder中用wizards—archive builder生成.jar包(自动生成manifest.mf文件),然后在用exe4j生成.exe文件.
注:exe4j中有个main class,要填写manifest.mf中main-class后的名字
几种java转exe的工具,进行一下比较,谈谈自己的看法:
1. 从www.towerj.com获得一个TowerJ编译器,该编译器可以将你的CLASS文件编译成EXE文件。
注:现在已经找不到,不提供了,被人家收购了。
2. 利用微软的SDK-Java 4.0所提供的jexegen.exe创建EXE文件,这个软件可以从微软的网站免费下载,地址如下:
http://www.microsoft.com/java/download/dl_sdk40.htm
jexegen的语法如下:
jexegen /OUT:exe_file_name
/MAIN:main_class_name main_class_file_name.class
[and other classes]
注:没有试过
3. Visual Cafe提供了一个能够创建EXE文件的本地编译器。你需要安装该光盘上提供的EXE组件。
注:没有试过
4. 使用InstallAnywhere创建安装盘。
注:很不错的工具。
但就是要>8M(带jre),还有一种是>1M的(不带jre)。
但是它可以编译成各种平台上可以使用的exe程序。
5. 使用IBM AlphaWorks提供的一个高性能Java编译器,该编译器可以从下面的地址获得:
http://www.alphaworks.ibm.com/tech/hpc
注:没有试过
6. JET是一个优秀的Java语言本地编译器。该编译器可以从这个网站获得一个测试版本:
http://www.excelsior-usa.com/jet.html
注:不喜欢。
编译好的程序还是jre的,听说正版的可以不能jre。安装好还要编译,我用了30分钟。
7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合并了以前的SuperCede,一个优秀的本地编译器,现在SuperCede已经不复存在了。
注:太烦了,老是出来一个对话框
用过,会出来一个对话框,表示这是jove公司的产品。
8. JToEXE
Bravo Zulu Consulting, Inc开发的一款本地编译器,本来可以从该公司的网页上免费下载的,不过目前在该公司的主页上找不到了。
公司主页:http://www.bravozulu.com/
下面这个FTP上曾经有过这个软件,不知道现在是不是还在:
ftp://race.dlut.edu.cn/pub/java/tools/jet
注:很烦了,老是出来一个对话框,但是没有想到我找到了crack,在google上找到。
现在去掉了那个对话框后,我很喜欢这个工具,虽然它需要jre,但是文件只有100多K,很好哦。
9.Exe4j
很不错
10.jbuilder
这个工具不用多讲了,在jbuilder6.0以前的(包括6.0),是不能生成exe文件的,所以可以用如下的方法实现。这可以人家高手想出来的,我只是帮着宣传一下。
还有jbuilder7.0开始都可以生成exe文件。
这个是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”包装起来,但是运行时候不显示那个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对这个功能不提供官方的支持!
如果你做的是SWT应用程序,那得需要写个Lancher来加载一些本地文件然后启动程序,下面是我在具体<nobr>项目</nobr>中写的样例<nobr>代码</nobr>,你可以参考一下:
Copy code
public class Lanucher {
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
String homePath = null;
if (args.length > 0) {
homePath = args[0];
}
if (homePath == null) {
homePath = System.getProperty("user.dir");
}
if (homePath == null) {
//如果主目录信息不存在, 则抛出错误, 然后关闭程序.
System.err.println("错误:系统没有指定主目录路径, 请<nobr>联系</nobr>系统管理员.");
execute(runtime, "pause");
} else {
System.out.println("1.使用主目录:" + homePath);
//启动应用程序.
String libPath = homePath + "/lib";
File libFile = new File(libPath);
File[] jarFiles = libFile.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".jar") || name.endsWith(".JAR");
}
});
String classpath = libPath;
if (jarFiles != null) {
for (int i = 0; i < jarFiles.length; i++) {
String jarFilePath = jarFiles[i].getPath();
System.out.println("2.添加库文件:" + jarFilePath);
classpath += ";" + jarFilePath;
}
}
String execute = ("\"" +
homePath + "/jre/bin/java\" -classpath \"" +
classpath + "\" -Djava.library.path=\"" +
libPath + "\" com.yipsilon.lifestyle.Application " +
homePath).replace('\\', '/');
System.out.println("3.执行程序:" + execute);
execute(runtime, execute);
}
}
private static void execute(Runtime runtime, String command) {
try {
runtime.exec(command);
} catch (IOException ioe) {
//如果主目录信息不存在, 则抛出错误, 然后关闭程序.
System.err.println("错误:执行主程序时出现错误.\n\n" + ioe.getMessage());
try {
runtime.exec("pause");
} catch (IOException ignore) {
}
}
}
}
关键字: java生成exe
exe4j.exe下载地址: http://download.ej-technologies.com/exe4j/exe4j_windows_4_0_1.exe
第一次安装时会出现下面的对话框:
它要求系统有1.5版本以上的JDK,点Download在线下载,如果你的机器上有JDK,点Locate找到你机器上已安装的JDK目录下/bin/java.exe就可以进行安装了。
下面就安装过程详细说明一下:
第1步,默认即可。
第2步,如果已经有制作好的jar文件,则下面一个"JAR in EXE"。
对于打包jar文件,在eclipse中右击项目选导出即可,不会制作jar文件可以给我留言
第3步,上面是项目名称,可随便填写,下面一个写出你想要将打包后的exe文件输出的目录:
第4步,由于我的演示程序是图形的,所以选第一个,如果你的程序是控制台的,则选择第二个,Executable name写你将要生成的exe文件的名字,Icon File可以选择生成文件的图标
第5步,首先,单击绿色的"+"号,在弹出的窗口中点Archive,然后找到起初已经做好的jar文件,"OK"后返回,在下面的Class Path里就出现jar文件路径后,再在上面Main Class栏内点击找到main所在的类,这一步即算完成:
第6步,你系统的JRE版本,上面填个1.3,下面填1.6:
当然,这样配置的程序只能在安装有JRE的机器上执行,发布时总要考虑的问题就是用户是否有能力在自己机器上安装JRE,总不能发布一个程序还要用户自己安装个JRE吧,下面我就介绍如何将JDK环境变量动态打包到exe中,在这里单击advanced options,选择search sequence。如图:
首先把JRE复制到exe文件输出的目录里,我用的是c:\xaocker\,在弹出的窗口中,删除列表中所有项,然后单击绿+,选择directory并选择JRE的根目录(注意是拷贝后的目录)即可,如图:
单击ok后,再从图中单击advanced options,并选择preferred VM,在弹出的窗口中选择client hostspot VM,单击next按钮继续:
第7、8步是一些基本配置,默认即可,第9步编译,第10步你就可以点这个看到效果了:
exe4j未注册的版本会出现下面的对话框:
点击确定之后就可以看到你程序的运行结果了!
java.exe依照一套逻辑来寻找可以用的JRE,首先查找自己所在的目录下有没有JRE,其次查找自己的父目录下有没有JRE;最后才是查询Windows的注册表。
现在我们的程序可以在任意的计算机上执行了,可是缺点是致命的,比方说我的程序才160K,可是不论走到哪里都要背着70多M的JRE,未免有点小题大做吧,其实作为我们的私有的JRE,好多内容都是可以抛弃的。Jre目录下的license都可以不要,bin下的执行文件只需要保留java.exe或者javaw.exe,lib下只要保留rt,jsse,jce,charsets几个库就可以了。除了i386和zi两个子目录外,其余的子目录都可以不要。Zi下只需要保留自己地区的子目录和其下的一些文件就可以。Lib下除了库之外的属性文件等等都要保留。这样清理一番,JRE仍然有接近50MB。还可以继续清理几个库文件里面不需要的内容,这需要仔细的整理,会很费功夫。最好能写出一个自动工具帮助我们整理它们。从Sun公司上下到的JMF里面附带的用Java写的媒体播放器就自带了JRE,只有几个MB。
清理过后需要运行几遍我们的应用程序,以确保我们的JRE不缺少东西。
OK,仔细清理之后,文件变小了不少,可以发布了……
评论
将JAVA打成EXE文件,同时将JRE打包,可以没有JRE的电脑上运行
http://56553655.iteye.com/blog/759694
发表评论
-
Java调用WebService(axis2)两种方法
2014-08-06 17:37 1598方式一:生成客户端代码调用方式。 通过插件工具生成客户端代码 ... -
java中string与byte[]的转换
2013-01-30 17:16 13811.string 转 byte[] byte[] midb ... -
JXL操作Excel
2013-01-05 18:23 813jxl是一个韩国人写的java操作excel的工具, 在开 ... -
java dom4j操作xml
2012-09-01 19:48 1019SAXReader reader = new SAXReade ... -
Oracle BIEE在linux下的安装
2012-04-19 00:02 2898BIEE在RHEL 4.x平台安装手册 系统环境:Red H ... -
Hadoop 开发平台搭建
2011-11-15 17:54 980【安装JDK】 首先,从http://www.oracl ... -
hadoop 命令手册
2011-11-15 17:52 814概述 所有的hadoop命令均由bin/hadoop脚本 ... -
Hadoop0.20.2版本在Ubuntu10下安装和配置
2011-11-08 15:44 9001、安装JDK (1)下载安装JDK:确保计算机联网之后命令 ... -
用 Linux 和 Apache Hadoop 进行云计算
2011-11-08 15:03 922本文内容包括: 云计 ... -
hadoop安装配置 ubuntu9.10 hadoop0.20.2
2011-11-08 14:54 1187Hadoop是一个易于安装易于使用的系统,他既适用于云计算的新 ... -
firefox浏览shtml时直接显示源代码问题
2008-11-06 20:01 3284firefox浏览shtml时直接显 ... -
java读xml
2008-09-19 13:55 3071java 读xml文件例子 xml文件: <?xml ... -
java 生成 ip地址
2007-12-10 16:55 5054在TCP/IP 互联网时,经常会需要查询自己主机的IP地址和w ... -
java map 介绍
2007-11-03 15:52 2799Java Map 集合类简介 作者 ... -
java循环示例集锦
2007-11-03 14:37 34911、 /* * Created on 2004-8-22 * ... -
如何将二维数组作为函数的参数传递
2007-10-19 22:36 9592如何将二维数组作为函 ... -
java中读取sql server数据库空字段异常的bug
2007-10-19 20:33 1536这两天一直被一个问题困扰许久,自己的数据库查询中老是报异常 ... -
servlet及jsp中的多线程同步问题
2007-10-19 19:15 1297Servlet/JSP技术和ASP、PHP等相比,由于其多线程 ... -
hibernate学习指导(转)
2007-09-26 14:01 1476Hibernate入门容易,掌握 ... -
session笔记(转)
2007-09-26 13:36 1116目录: 一、术语session ...
相关推荐
【Java生成EXE - 使用exe4j】 Java应用程序在Windows平台上部署时,常常面临一个问题:用户需要安装JRE,而且需要正确版本,这对许多不熟悉技术的用户来说是个挑战。为了解决这个问题,开发者通常会寻找方法将Java...
在Java生成exe的过程中,还需要注意以下几点: - 配置文件:确保你的Java应用程序有一个明确的主类,即包含`public static void main(String[] args)`方法的类。这是.exe文件运行的入口点。 - 依赖管理:如果你的...
### Java生成EXE的方法详解 #### 一、背景与需求 在Java开发中,有时我们需要将Java应用程序封装成一个可以直接双击运行的EXE文件,这样不仅方便非技术人员使用,还可以提升应用程序的专业形象。本篇文章将详细...
java生成exe应用程序java生成exe应用程序java生成exe应用程序java生成exe应用程序
JAVA生成EXE工具,直接下一步,很方便生成可执行的EXE文件
【Java生成EXE文件】 Java程序通常以JAR(Java Archive)文件的形式存在,而EXE文件是Windows操作系统下的可执行文件格式。为了让Java程序在没有Java环境的Windows机器上运行,我们需要将其转换为EXE文件。以下是...
Java 生成EXE文件是为了将Java程序转换成Windows操作系统...总的来说,Java生成EXE文件是一个将Java程序本地化的手段,exe4j提供了一个简单易用的途径,通过配置和优化,可以使Java程序在没有JRE的环境中也能顺利运行。
Java生成EXE打包工具exe4j是一款专门用于将Java应用程序转换为Windows可执行文件(.exe)的工具。它使得Java程序能够在没有JVM(Java虚拟机)的环境中运行,提高了用户使用的便捷性。exe4j是IntelliJ IDEA公司开发的...
hjb3_0-win-jre.exe java 生成 exe 工具 如果把jre打到包中可以实现windows程序一样的效果。
Java生成exe文件是将Java应用程序转换为可执行文件的过程,使得非Java环境的用户也能运行程序。这通常通过Java的打包工具,如JAR(Java Archive)和外部工具如JEXEpack、Launch4j等实现。这些工具可以把Java字节码...
"JCreator生成.jar文件&&java生成exe文件参照.pdf" JCreator是一款功能强大的Java集成开发环境(Integrated Development Environment,IDE),其可以帮助开发者快速生成.jar文件。那么,如何使用JCreator生成.jar...
6. **生成exe文件**:完成以上设置后,点击“生成”按钮,`exe4j`将根据你的配置生成.exe文件。 7. **测试和分发**:最后,你需要在不同的计算机上测试生成的.exe文件,确保它能在没有JVM的环境中正常运行。 在你...
1. **代码转换**:首先,Java源代码被编译为.class文件,然后这些.class文件会被JavaExe工具进一步处理,准备生成.exe文件。 2. **资源打包**:除了Java类文件,可能还需要其他资源文件,如图片、配置文件等。这些...
Java 生成可执行文件通常指的是将 Java 程序打包成 JAR 文件,并通过特定方式使其能在 Windows 系统上以 `.exe` 执行文件的形式运行。以下将详细解释这个过程: 1. **编写 Java 程序**: 首先,你需要编写一个包含...
不用安装. 直接生成EXE.还能换图标.
生成.jar文件后,如果希望Java程序能够直接以.exe格式运行,就需要使用第三方工具,如exe4j。exe4j是一个专门用于将Java应用转化为Windows可执行文件的工具。以下是如何使用exe4j将.jar文件转换为.exe文件的简要步骤...
1. **准备Java应用程序**:确保你的Java项目已经编译并打包为JAR文件,这是生成.exe的基础。 2. **选择打包工具**:根据你的需求选择一个合适的工具。例如,JSmooth提供了一个图形化界面,易于使用;而Launch4j则...
5. **测试与分发**:最后,你可以测试生成的.exe文件,确保其在没有Java环境的机器上也能正常运行。如果一切顺利,就可以将.exe文件分发给用户了。 需要注意的是,虽然jsmooth能够将Java程序转换为.exe,但这种方式...
大家都知道,通常Java程序需要JVM与OS互动才能运行于本地环境之上,所谓鱼与熊掌不可兼得,这样做虽然极大降低了程序的移植难度,却同时增加了程序的环境要求,因为无论你用什么方法,总需弄个虚拟机才能让你的Java...