若要生成一个名为 cal.jar 的可执行jar文件:(文件名可以是任意合法名字) 

(这是我认为简单实用的一种方法,还有很多别的方法在此就不介绍了) 

第一 把程序生成的所有字节码文件(即.class文件)放在同一个目录下(如:D:/chat/). 

第二 在该目录下新建一个manifest.mf文件,文件内容格式如下(划线中内容): 

manifest.mf文件中的格式: 





-------------------------------- 

Main-Class: calDemo

-------------------------------- 





注意: calDemo代表主类名(即要运行的类名,只能有一个,不要文件扩展名) 

Main与Class中间不是下划线,而是短横线 

Main-Class:与calDemo中间必须要有空格 

Main-Class: calDemo之后必须要回车





文件中还可以加入一些其他信息如:(先不要加,以免出错)

-------------------------------------------- 

Manifest-Version: 1.0 

Created-By: 1.4.1_02 (Sun Microsystems Inc.) 

--------------------------------------------





然后用jar命令生成可执行的jar文件,例如: 

(执行该命令前先要转到该目录下 D:/chat/ ) 

jar cvfm cal.jar manifest.mf *.class





jar用法:(仅供参考,初学者可跳过这部分内容) 

jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ... 

选项: 

-c 创建新的存档 

-t 列出存档内容的列表 

-x 展开存档中的命名的(或所有的〕文件 

-u 更新已存在的存档 

-v 生成详细输出到标准输出上 

-f 指定存档文件名 

-m 包含来自标明文件的标明信息 

-0 只存储方式;未用ZIP压缩格式 

-M 不产生所有项的清单(manifest〕文件 

-i 为指定的jar文件产生索引信息 

-C 改变到指定的目录,并且包含下列文件: 

如果一个文件名是一个目录,它将被递归处理。 

清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。

示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:

 

jar cvf classes.jar Foo.class Bar.class 









示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有 

文件存档到一个名为 'classes.jar' 的存档文件中: 





jar cvfm classes.jar mymanifest -C foo/ .

 

 

 

 

eclipse有相关操作 

------------------------------------------------------------------------

1,右击Eclipse项目,点击Export。





2,选中java-jar文件。





3,选中要发布为jar文件的项目。

1)选中源文件夹,库文件夹,配置文件文件夹。

2)不要选中Eclipse项目的文件和其他不需要的文件。

3)选中:Export all output folders for checked projects

输出所有选中的文件夹。

4)选中:Export java source files and resources

如果是源文件夹,就会输出生成的.class文件。

5)选中:压缩Jar文件的内容。

6)选中:不警告就覆盖已存在的文件

7)选择一个输出jar文件的目的地。





4,使用已存在的manifest文件。





5,MANIFEST.MF  文件如下:

Manifest-Version: 1.0

Main-Class: Test

Class-Path: lib/OXmlEd1.11-nolib-bin.jar lib/dom4j-1.6.1.jar lib/commons-logging-1.0.4.jar lib/log4j-1.2.8.jar

 

    如果让Eclipse为我们生成,不会生成Class-Path部分的描述。所以,我们需要再加上Class-Path描述!

 

6,现在,制作完成的jar文件就是可执行的。

我们在命令行中执行java –jar AAA.jar 就可以看到该程序被成功执行了。

javaw –jar AAA.jar  也可以执行该jar包。

   

使用java.exe将会出现命令行窗口。

使用javaw.exe执行,不会出现命令行窗口,所有System.out.print这样的输出都是看不到的。

 

 

7,如果你安装了JRE,你的jar文件应该关联在javaw –jar上。

如果你的jar文件没有关联javaw –jar了,可以通过以下方法重新关联。

1)在资源窗口—工具—文件夹选项—文件类型中,新建jar的关联。

2)创建一个.bat文件,其中的命令是:javaw -jar %1  或者java -jar %1

3)把.jar文件关联到上面这样的.bat文件中。

这样,你双击.jar文件时,就会立刻执行该java程序。

 

%1 表示第一个参数,也就是你点击的jar文件的文件全名。

 

8,你也可以为每一个可执行的jar文件创建一个.bat文件,其中的命令是javaw -jar AAA.jar 或者java –jar AAA.jar等文件。

    这样,无需关联jar文件,就可以执行jar文件。

Java打包成jar的更多相关文章

  1. java打包成jar,但不打包配置文件

    有时候我们做java project的时候,都会打包成jar程序,为了方便部署会加个配置文件conf/pro.properties(conf文件夹与src文件夹同级) 但是不想打包进jar.其实用ec ...

  2. [Java] Java 打包成jar包 和 解压jar包

    解压jar包 jar xf xxx.jar 打包成jar包 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] ...

  3. java打包成jar文件

    JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成.JAR包是 ...

  4. Maven将java打包成jar并且运行笔记

    Maven项目打包成jar并且运行笔记 首先创建一个maven项目 运行成功后,有两种方式将项目进行打包. 第一种方式: 在IDEA编辑器中maven项目进行打包: 这里显示jar包中没有主清单属性, ...

  5. java代码打包成jar以及转换为exe

    教你如何把java代码打包成jar文件以及转换为exe可执行文件 1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有 ...

  6. 转载:java程序打包成jar 配置文件信息路径

    一个普通的java project,里面引用了config.properties配置文件,将项目打成Runnable jar,然后将config.properties放到打包后的jar路径下,执行该j ...

  7. 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件

    1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有不爽.此篇博客教你如何方便快捷地把java代码,打包成jar文件以 ...

  8. java程序打包成jar 配置文件信息路径

    一个普通的java project,里面引用了config.properties配置文件,将项目打成Runnable jar,然后将config.properties放到打包后的jar路径下,执行该j ...

  9. 把java文件打包成.jar (jar命令详解)

    把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...

随机推荐

  1. 设计模式08: Composite 组合模式(结构型模式)

    Composite 组合模式(结构型模式) 对象容器的问题在面向对象系统中,我们常会遇到一类具有“容器”特征的对象——即他们在充当对象的同时,又是其他对象的容器. public interface I ...

  2. LeftStr函数使用

    LeftStr(s, i); 表示返回字符串s的左边共I位字符的一个新字符串. var i: integer; s: string; result: string; begin i := ; s := ...

  3. Tomcat调优总结

    Tomcat 优化分为系统优化,Java虚拟机调优,Tomcat本身的优化. Tomcat 如何起停 ./catalina.sh stop ./catalina.sh start/sbin/servi ...

  4. 我用Django搭网站(2)-QQ登录

    接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 第一步:准备阶段 打开QQ互联,并登录你的QQ账号.再点击导航上的" ...

  5. WinForm中DataGridView的使用(三) - 各种事件

    CellMouseDown/CellMouseUp 可获得行.列号 可用if (rowIndex >= 0 && e.Y > 4 && e.Y < ( ...

  6. 【大数据之数据仓库】HAWQ versus GreenPlum

    谈到GreenPlum,肯定会有同事说HAWQ!是的,在本系列第一篇选型流水记里,也有提到.因为对HAWQ接触有限,没有深入具体了解,所以很多信息都是来自于博文,人云亦云,我把看过的资料简要整理,希望 ...

  7. 「HNOI2010」合唱队

    题目链接 戳我 \(Solution\) 令: \(f[i][j]\)为\([i,j]\)中最后排进去的是第i人 \(dp[i][j]\)为\([i,j]\)中最后排进去的是第j人 则排头的元素即\( ...

  8. c++内存模型------计算机系统核心概念及软硬件实现

    c++编程语言有3中不同类项的变量:全局变量.局部变量和动态分配变量.变量的值存储在计算机的内存中,但是变量存储的方式取决于变量的类项.3种类型的变量分别对应存储器中3个特定的区域: 全局变量存放在存 ...

  9. MooseFS分布式文件系统介绍

    一.简介 MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本.对于访问的客户端或者用户来说,整个分布式网络文件系统 ...

  10. day7学python 初识简单模板

    初识简单模板 模块与包 1.模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现功能),本质是.py结尾的文件 但导入的模块名,无.py 2.包:从逻辑上组织模块,本质就是目录(含有_i ...