Java程序打成Jar包全过程
Java程序完成以后 对于Windows操作系统 习惯总是想双击某个exe文件就可以直接运行程序 现我将一步一步的实现该过程 最终结果是:不用安装JRE环境 不用安装数据库 直接双击一个exe文件 就可以运行程序
下面我将以我最近写的一个程序作例子 进行该打程
该程序是使用了:Hibernate Spring Derby的Java GUI (JDK需要 版本 因该版本才有Derby) 我使用的是Eclipse进行开发
第一步:完成Java GUI程序
在Eclipse下 程序能够正常运行
第二步:准备清单文件(MANIFEST MF)
方法 :直接拷贝其它能运行的JAR文件中的MANIFEST MF进行修改
方法 :利用IDE工具 如Eclipse在生成JAR文件时自动生成
MANIFEST MF内容如下:
Manifest Version:
Main Class: manager ui MainFrame
Class Path: /lib/spring jar /lib/hibernate jar /lib/derby jar
Imager: manager/resources/images/splash jpg
说明:
Manifest Version - 指定清单文件的版本号
Main Class -指定程序运行的入口类 注意 类名后不要加class扩展名
Class Path -指定支持库的路径 指程序运行目录 即导出的JAR包所在目录 程序运行时依据Class Path项的设置路径来查找支持库 每一个支持库之间用空格隔开 在这里使用了hibernate spring derby
注意:
如果Java应用程序用到了一些Eclipse包 那么就必须将这些包也复制到程序运行目录 设置到Class Path 否则程序将无法运行 引用了一些外部组件也需要如此设置 如hibernate spring derby
除了入口类的包名和类名之外 其他设置项都不分大小写 比如 Class Path写成class path或CLASS PATH也可以 swt jar写成SWT JAR也行
类名后不要加class扩展名
每一行的 : 后都有一个空格 如Class Path:<空格> /lib/spring jar
Class Path中 引入的JAR文件每行不得超过 个 否则会报错 但在让人意外的是每行只有前 个有效 故将所有同类型的JAR文件做成一个JAR文件 如我这里的spring jar hibernate jar derby jar都是同类JAR文件的组合
第三步:修改spring配置文件
在spring的 bean的配置中则要这样写(与程序中对应)
<property name= >
<list>
<value>manager/entity/MyFile hbm xml</value>
<value>manager/entity/FileType hbm xml</value>
</list>
</property>
第四步:使用Eclipse生成JAR文件
右键单击项目名 在弹出菜单中选择 Export 在弹出的如下图所示的对话框中 选择 JAR文件 单击 Next
将右边不需要的文件都取消勾选 在 选择导出目标(Select the export ) 项文本框中设置JAR包的输出路径和包名(可以任意取名)为 D:\manager\manager jar 接受其他的默认设置不变 单击 Next
附注 左边虽然选择了src目录 但源文件并不会导出到包中 除非勾选了 导出Java源代码文件和资源(Export java source files and resources) 项
接受默认设置不变 单击 Next
这一步较关键 如下图所示 选择 从工作空间中使用现有清单 项 将创建的清单文件输入 也可以通过旁边的 浏览 按钮来选择清单文件 输入清单文件后 单击 Finish Eclipse开始将项目打包
附:这里也可以选择Generate the manifest file 但生成的清单文件MAINFEST MF需要修改
注意:清单文件MAINFEST MF一定要按第二步那样设置
生成的JAR文件目录如下:
第五步:生成运行manager jar的批处理文件manager bat(该步可以不要)
在manager目录下创建一个批处理程序manager bat(名字任取 扩展名必须是bat) 其内容仅一句语句 如下
javaw jar manager jar
说明
javaw对应c:\jdk\jre\bin\javaw exe文件 如果windows提示命令未发现 则需要将c:\jdk\jre\bin路径加入到windows环境变量path中
在运行程序的时候有一个讨厌的黑色命令行窗口 要去掉它 可以将run bat内容更改如下 start javaw jar manager jar start是指调用了windows的 运行 命令
在后边加一个pause就可以让你看到具体哪里出错了 如:
start javaw jar manager jar
pause
双击manager bat 就可以运行该JAR文件了
第六步:让电脑不必安装JRE环境 也能运行
通常运行Java程序有个前提条件 用户电脑必须先安装JRE环境 虽然安装JRE环境非常简单 但毕竟多了一步 算是有一点点的瑕疵 这里给出一个不必让用户安装JRE环境的方法 其实现步骤如下
( )将原JDK中的 jre 目录复制到 D:\manager\java 目录下(java也可换成其他名称)
( )将JDK和JRE从本机卸载掉 这样表示本机没有安装JAVA运行环境
( )修改批处理文件manager bat中的命令为 start java\jre\bin\javaw jar manager jar 仅仅是在javaw前加上了一个相对应路径
双击manager bat即可在不安装JRE环境的电脑运行此Java应用程序
第七步:抛弃批处理文件(* bat) 生成exe文件
用批处理文件运行程序似乎不够专业 虽然它足以完成运行任务 但习惯就象一种毒药一旦染上就很难摆脱它的影响 Windows统治下的人们早已经习惯运行扩展名是EXE的程序 用* bat他们就会感觉别扭
我们可以用一个叫的免费小程序来代替批处理文件去运行Java程序 的下载网址是
下载下来的文件是一个名 zip的压缩包 解压后的目录结构如下所示
zip目录结构
source 目录包含了的源程序 是用C语言写的
changes txt 是新版的修改说明
launch exe 是主程序
launcher cfg 是配置文件
readme txt 是一些说明和示例
我们只需要launch exe launcher cfg两个文件 将这两个文件复制到打包文件所在的目录 launcher cfg是一个仅三行内容的文本文件 将它修改如下
\java\jre\bin\javaw exe
jar manager jar
第一行设置指向JAR包managger jar的目录 由于launch exe和myswt jar同在一个目录 所以用 即当前目录
第二行设置指向jre\bin\javaw exe的路径 在上面已将jre目录复制到了java子目录中
配置好launcher cfg后 双击launch exe即可运行java应用程序
如果仔佃研究eclipse的启动方式 发现eclipse和的原理一样 eclipse exe相当于launch exe startup jar相当于manager jar 只不过eclipse exe不象launch exe要具有通用性 所以它没有* cfg这样的配置文件 而是将启动信息固化在eclipse exe中
第八步:美化图标
launch exe文件的图标太单调了 让我们给它换个好看点的 换程序的图标需要用到一个免费的软件 Resource Hacker
第九步:最后的打包
发送给用户之前 通常要用WinZip或WinRAR将所有的文件全部打成一个压缩包 然后用户得到这个压缩包后 将其解压缩后即可运行程序 Eclipse软件就是这种方式
/Article/program/Java/hx/201311/25574
Eclipse如何将Java项目打包成jar包?
如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自定义配置文件MANIFEST.MF ,例如:\x0d\-Version: 1.0\x0d\x0aClass-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jar\x0d\x0aMain-Class: src.\x0d\x0a其中的Class-Path就指定了外来jar包的位置。请注意假设我们的项目打包后为project.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib文件夹,并将相关的jar包放在里面。否则将会出现Exception in thread "main" java.lang.的错误。\x0d\x0a如果想在所导出的jar包中包含第三方jar包,可以如下操作:\x0d\x0a1.在工程目录下放入第三方jar包\x0d\x0a2.Class-Path: name.jar\x0d\x0a上诉两个步骤就可以成功导出引用了jar包的java工程,并将第三方jar包放在导出的工程中\x0d\x0a注意:如果在Class-Path 中引入比较多的jar包,不要写成一行,不然会报:java.io. : line too long ,需要分多行写,第二行以及下面的第三行、第四行写的时候需要在前面空两格(敲两下空格键)即可\x0d\x0a最后介绍一下使用Eclipse制作jar包的过程吧:\x0d\x0a1. 首先在Eclipse中打开项目, 右键点击项目,选择“Export”;\x0d\x0a2. 选择Java/JAR file,Next;\x0d\x0a3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间;\x0d\x0a这里有几个选项:\x0d\x0a* Export generated class files and resources 表示只导出生成的.class文件和其他资源文件\x0d\x0a* Export all output folders for checked projects 表示导出选中项目的所有文件夹\x0d\x0a* Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了\x0d\x0a* Export for checked projects 把一些重构的信息文件也包含进去\x0d\x0a在Select the export 中选择导出的jar的路径,Next\x0d\x0a4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next\x0d\x0a5. 下一个页面里可以对项目做一些配置。\x0d\x0a* Generate the manifest file是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。\x0d\x0a* Use existing mainfest from workspace。这是可以选择我们自定义的.MF文件,格式如上所写。\x0d\x0a* Seal content。要封装整个jar或者指定的包packet\x0d\x0a* Main class。这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。\x0d\x0a最后Finish 完成
java如何打jar包
工具/原料
eclipse
方法/步骤
启动eclipse,在eclipse中建立好工程与类并写好代码
点击“File->Export”
在弹击的界面中选择“Java->JAR file”,再点击“Next”
选择要打包的文件,再点击“Browse”
在弹出的界面中选择好打包后的文件的存放路径,再输入文件名,最后点击“保存”
点击“Finish”
打包成功
java 代码怎么打成jar包
方法:
1、启动eclipse;
2、在eclipse中建立好工程与类并写好代码;
3、点击“File->Export”;
4、在弹击的界面中选择“Java->JAR file”,再点击“Next”;
5、选择要打包的文件,再点击“Browse”;
6、在弹出的界面中选择好打包后的文件的存放路径,再输入文件名,最后点击“保存”;
7、点击“Finish”;
8、打包成功。
Java项目怎么打成jar包
第一种:在jbuilder中:
首先你要保证Run菜单-->Run Project能顺利运行
然后Wizards菜单-->Native Builder
选中Compress the contents of the archive(产生jar文件的话)
Next-->Next-->选中Always include all classes and resources再Next-->Next-->Next
选中Windows GUI"exe"(产生EXE文件的话)-->Finish
再在项目的文件列表中的Native 右击-->Make就可以了
第二种:在cmd 下生成jar文件
abc.txt内容如下:
Manifest-Version: 1.0
Main-Class: main-class-name(回车)
在cmd下:
javac *.java
jar cvfm abc.jar abc.txt *.class
示例——生成能通过鼠标双击就执行的.jar文件
一、编写 Java源程序Test.java如下:
// Test.java
import javax.swing.*;
/**
* @(#) Test.java
* Copyleft (c) 2002 RatKing
* @author <a href="ratking@ynet.com">RatKing</a>
* @version 0.1, 2002-11-7
* 描述:一个测试用的Java
*/
public class Test extends JFrame {
public Test(String title) {
super(title);
this.(JFrame.EXIT_ON_CLOSE);
this.().add(new JLabel("测试!", JLabel.CENTER), .CENTER);
this.pack();
}
public static void main(String[] args) {
try {
//UIManager.(UIManager.());
UIManager.(UIManager.());
} catch(Exception e) {
e.();
}
Test t = new Test("Test - 测试");
t.(true);
}
}
二、编译Test.java为Test.class(当然假设你事先已经设置好了JDK的环境变量PATH和CLASSPATH)
在命令行执行编译命令:
javac Test.java
三、用文本编辑器(比如记事本/UltraEdit等 - 甚至用ECHO命令加管道“>>”)编写如下manifest文件,并保存为abc.txt
Manifest-Version: 1.0
Main-Class: Test
【注意】文件abc.txt内必须是3行文本:
第一行的内容依次是:“Manifest”、英文减号、“Version”、英文冒号、英文空格、数字“1”、英文句号、数字“0”
第二行的英文冒号与Test之间必须要有一个英文空格!!!如果有包名一定要带上!!!包名.类名
第三行是一个空行,也就是说,你要在Test之后键入一个回车,然后才可以存盘退出!!!
如果冒号后面没有空格,可以生成jar文件但不能执行;如果Test后没有回车符,则生成jar文件时会报错。
该文件可以放在任何目录下
四、将Test.class打包成.jar文件,并使用abc.txt指明哪一个是带有public static void main()的“主函数”
在命令行执行编译命令:
jar cvfm Test.jar abc.txt *.class
如果有包名可以这样写,如包名为test,一定要在该包的上一层目录执行下面这句
jar cvfm Test.jar abc.txt test
你可以使用WinZip之类的解压软件看一看刚刚生成的Test.jar文件里到底有什么。
五、用鼠标双击Test.jar的图标,应该可以看到Test执行后的窗口。
〖说明〗如果你正确地安装了 Java运行环境(JRE),那么.jar的图标应该是象一页纸并有一个A的形状,就如同写字板的图标。
如果你的.jar文件默认的打开关联不对,可以重新设置:
我 的电脑->查看(Win9x)或工具(Win2k)->文件夹选项->文件类型->选择JAR文件->编辑该类型文件的属 性->操作栏填入[ open ](不填引号和中括号[]),并在“执行操作的应用程序”栏填入[ "C:\Program Files\Java\j2re1.4.1\bin\javaw.exe" -jar "%1" %* ](填两对英文引号,不填[])
并按“确定”、“关闭”退出对.jar文件关联的编辑。
(你的javaw.exe文件是不是位于C:\Program Files\Java\j2re1.4.1\bin\路径下,视你自己电脑的情况而定)
第三种:JB中生成.exe文件
1、菜单中选择【Wizards】-【Native Builder....】弹出对话框
2、在弹出的对话框中第一步(Step 1 of 7)的【Name】输入一个名称,并取消【Always create archive when building the project】点击【Next】
3、根据需要悬着需要的类,再选择【Include class 】,点击【Next】
4、根据需要悬着需要的库文件,再选择下面的4个单选,反复所有的需要的库,点击【Next】
5、默认点击【Next】
6、在(Step 5 of 7)的时候选择一个主类运行点击【Next】
7、在(Step 6 of 7)的时候选择运行平台【Next】
8、默认点击【Finish】,这时候在工程的目录窗口出现了一个在(Step 1 of 7)输入的【Name】目录
9、右击这个目录,选择【Rebuild....】,Jbuilder就开始编译和创建执行文件或是Jar文件了
10、等完成之后,该目录下右几个文件,一般是有至少一个jar文件,或是一个exe文件
11、在Window打开工程所在的目录,就可以看到里面的有几个刚才编译的文件
12、执行jar就是用java -jar ***.jar、执行exe直接双击
---------------------------------------------------------------
1、不建议使用jb,因为打包后可执行文件的图标改不了且jb的可执行文件实际上是可执行的jar文件,可以将其exe扩展名改为jar一样可执行。
2、还是使用jsmooth较好,首先编写menifest文件目的指明main类,使用jar命令打包成可执行jar文件,让后使用开源的jsmooth做成exe。