如何打包jar

2023-10-28

http://www.2cto.com/kf/201204/129495.html

方法一:通过jar命令

jar命令的用法:

下面是jar命令的帮助说明:

用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...

选项包括:
    -c  创建新的归档文件
    -t  列出归档目录
    -x  解压缩已归档的指定(或所有)文件
    -u  更新现有的归档文件
    -v  在标准输出中生成详细输出
    -f  指定归档文件名
    -m  包含指定清单文件中的清单信息
    -e  为捆绑到可执行 jar 文件的独立应用程序
        指定应用程序入口点
    -0  仅存储;不使用任何 ZIP 压缩
    -M  不创建条目的清单文件
    -i  为指定的 jar 文件生成索引信息
    -C  更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 "m"、"f" 和 "e" 标志的指定顺序相同。

示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
       jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 "mymanifest" 并
           将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
       jar cvfm classes.jar mymanifest -C foo/ .

 

下文假设编译后的class文件在bin目录下

一、打包成一般的jar包

输入如下命令即可:

Cmd代码 复制代码  收藏代码
  1. jar cvf counter.jar -C bin .  
jar cvf counter.jar -C bin .

其中,“-C bin”实际上是告诉jar命令先cd到bin目录下,再在此目录执行没有参数“-C bin”的命令,等价于:

 

Cmd代码 复制代码  收藏代码
  1. cd bin   
  2. jar cvf counter.jar . // "."代表当前路径  
cd bin
jar cvf counter.jar . // "."代表当前路径
 

二、打包成可运行的jar包

要打包成可运行的jar包,有两种方法,一是手动创建MANIFEST.MF文件,并在其中指定主类;二是使用jar的-e参数指定可运行jar包的入口点(即main类的完全名称).

以Java源代码行数统计程序的打包为例,演示如何打包:

1. 手动创建MANIFEST.MF文件:

1)首先编辑MANIFEST.MF文件,内容如下:

Mf代码 复制代码  收藏代码
  1. Manifest-Version: 1.0  
  2. Created-By: rsljdkt   
  3. Class-Path: .   
  4. Main-Class: Main  
Manifest-Version: 1.0
Created-By: rsljdkt
Class-Path: .
Main-Class: Main

 

说明:

  第一行指定清单的版本,若无,则JDK默认生成:Manifest-Version: 1.0

  第二行指明创建的作者,若无,则JDK默认生成Created-By: 1.6.0_22(Sun Microsystems Inc.)

  第三行指定主类所在类路径,

  第四行指明程序运行的主类

2)使用jar命令进行打包:

Cmd代码 复制代码  收藏代码
  1. jar cvfm counter.jar MANIFEST.MF -C bin .  
jar cvfm counter.jar MANIFEST.MF -C bin .

 说明:

  参数f:指定打包后的包名。

  参数m:指定自定义的MANIFEST.MF清单文件,否则,JDK会自动生成不包含Main-Class的默认清单。

  参数c:指定是创建新的归档文件。

  参数v:在标准输出中生成详细输出,该选项是可选的。

 

2. 使用-e参数指定入口点:

执行如下命令即可:

 

Cmd代码 复制代码  收藏代码
  1. jar cvfe counter.jar Main -C bin .  
jar cvfe counter.jar Main -C bin .
 

 

方法二:使用Eclipse的Export功能:

一、打包成一般的jar包:

步骤如下:

  1)在要打包的项目上右击,选择Export

  2)在弹出的窗口中,选择Java -> JAR File,然后点击next按钮

  3)在JAR File Specification窗口中,设置打包成的文件名和存放位置,点击两侧next

  4)在JAR Manifest Specification窗口中,设置MANIFEST.MF清单文件的配置,

    若仅仅打包成单纯的jar包的话,不用做任何修改,采取默认即可

    若打包成可执行jar包的话,可以使用已存在的MANIFEST文件或者直接选择Main class

  5)点击Finish按钮,完成打包。

二、打包成可运行的jar包

步骤如下:

  1)在要打包的项目上右击,选择Export

  2)在弹出的窗口中,选择Java -> Runnable JAR File,然后点击next按钮

  3)在Runnable JAR File Specification窗口中,选择Launch configuration和Export destination

  4)点击Finish按钮,打包完成。
========================================================
========================================================

使用的工具及环境:

MyEclipse 7.5 Java Enterprise、JDK1.6.0

 

 

  打包JAR文件:


          首先,创建一个Java的项目,点击菜单栏File --> New --> Java Project  -->   Web Project Details --->  Project Name 填写好项目名称后(如:MyJaPro),点击Finish按钮(其他都是默认)。

          第二步,鼠标右击,刚才创建项目名称(MyJaPro)之下的src文件夹,创建一个类步骤为:New ---> Class 会弹出一个New Java Class 窗口 :


1、填写一下”Package“的文本框,如:Test。

2、填写一下“Name“的文本框,如:TestMain。

3、勾选“Which method stubs would you like to create?” 的子项“public static vodi main(String[] args)”。

4、点击按钮 “Finish”。

        第三步,编写好TestMain.java的文件,点击菜单栏的”Run“ ---> ”Run" 运行成功 (程序一定要运行成功)。

        第四步,在导出(Export)之前,先引用所需包到项目下:

                              1、 鼠标右键点击MyJaPro项目,点击Properties菜单,会弹出一个“Properties MyJaPro”窗口。

                              2、选择“Java Build Path”中的“Libraries”选项卡添加相应的包。

                              3、再选择“Order and Export”选项卡,鼠标单击“Select All”按钮,再点击“OK”按钮

                              4、这个步骤是将引用的包,导到JAR里面(java.lang.ClassNotFoundException)。

        第五步,鼠标右键点击项目名称(MyJaPro),选择"Export"菜单按钮,会弹出一个"Export“窗口,在窗口中选择”Java“ ----> ”Runnable JAR file" ,点击"Next   >“按钮。

        第六步,在”Launch configuration"下拉框中选择:TestMain  -  MyJaPro 的项。

        第七步,在"Export destination:“下,点击”Browse. . .“按钮,保存到桌面,填写文件名(如:MyJaPro.JAR),然后点击保存。

        第八步,点击”Finish“按钮,文件被导出到桌面。

       


        注意(好处):

1、可以生成JAR文件,下次无需开启编译器,也可以运行TestMain的程序,也就是双击MyJaPro.JAR文件(JDK1.6一定要安装才能运行)。

2、可以把你的项目中的引用包(*.JAR)也生成到MyJaPro.JAR的包中,就不会出现java.lang.ClassNotFoundException等的异常信息,也就是找不到你的引用包,好比是jdbc.jar包的一些的数据库驱动包。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何打包jar 的相关文章

随机推荐

  • 并发下的Map常见面试题

    HashMap 和 HashTable 有什么区别 java中的另一个线程安全的与HashMap极其类似的类是什么 同样是线程安全 它与HashTable在线程同步上有什么不同 HashMap 与 ConcurrentHashMap的区别
  • unityshader 消融效果

    代码 讲解都在注释上面了 冯乐乐的 unity shader 入门精要 相关知识 透明度 阴影计算 普通光照 法线贴图 Properties BurnAmount BurnAmount Range 0 1 0 LineWidth LineW
  • Web安全之SSRF漏洞

    内容 SSRF漏洞的危害 SSRF漏洞的挖掘 SSRF漏洞的防御 SSRF漏洞原理概述 背景 SSRF Server Side Request Forgery 服务器端请求伪造 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞 一般情况
  • kubernetes环境搭建

    kubernetes介绍 Kubernetes是Google在2014年6月开源的一个容器集群管理系统 使用Go语言开发 Kubernetes也叫K8S K8S是Google内部一个叫Borg的容器集群管理系统衍生出来的 Borg已经在Go
  • python win32gui.FindWindow()找不到窗口(亲测有效)

    今天又是不聪明的小侦探热爱敲代码的一天 前言 今天来为大家解决win32gui FindWindow 找不到窗口的问题 本来打算制作一个游戏脚本 去网上找了点教程自学 遇到了使用win32gui FindWindow 语句能打开web等窗口
  • 算术收益率与对数收益率(几何收益率)

    日收益率 假设 Pt P t P t 为某一投资品种的净值 算术收益率 Pt 1 1 rt Pt P t 1
  • python中的pickle模块:序列化与反序列化

    pickle模块实现了数据序列和反序列化 pickle模块使用的数据格式是python专用的 能够把Python对象直接保存到文件中 而不需要把他们转化为字符串 也不用底层的文件访问操作把它们写入到一个二进制文件中 Pickle模块中最常用
  • UE4_Python_自动化导入素材脚本_音频_图片_FBX

    1 新建项目 开启插件 2 项目设置 gt Python 3 资源加载脚本 AssetFunctions py 目录跟上图的目录一致 导入FBX import unreal asset path E fireAxe FBX asset pa
  • Blender 3.5 面的操作(二)

    目录 1 面操作 1 1 面的切割 1 2 整体切分 1 3 面的法向 1 4 正面 背面 1 5 翻转法向 1 6 填充面 1 7 面倒角 1 8 循环面 1 9 X Ray 透视模式 1 面操作 1 1 面的切割 切割工具 Knife
  • 服务器vmware新建虚拟机教程,如何创建虚拟机教程全解

    这部分教程我们将学习的是如何创建虚拟机 在创建虚拟机之前 vSphere Client是必要的软件之一 它用于访问ESX主机或vCenter的图形管理用户界面 vSphere Client安装在Windows计算机上 它是与虚拟基础架构进行
  • eclipse的workspace删除

    在最近的一个爬虫项目中 发现build进程很慢 然后就换了个workspace 但还是很慢最后也出错了 然后想删除这个workspace 我尝试删除了F盘对应的workspace文件夹 但是令人不解的是 eclipse竟然还可以switch
  • linux上安装和启动docker

    1 安装Docker 这里我们将Docker安装到CentOS7上 最好是将yum更新下 sudo yum update 2 安装需要的软件包yum util 如果不安装则第三步会出现yum config manager command n
  • 性能测试---LoadRunner

    目录 1 LoadRunner对比Jmeter的优势 2 LoadRunner三个组件之间的关系 3 学习VUG的使用 3 1创建性能测试脚本并进行录制 第一步 打开VUG 创建一个新的性能测试的脚本 第二步 对新建的脚本进行设置 第三步
  • macbook pro适合python编程么_编程应该选macbook pro还是thinkpad T(从性能角度出发)?...

    谢邀 背景 工作中要是用Python C 和一点点Java 需要用到很多机器学习算法 首先我把几个机型的推荐款列一下 所有机型 8代CPU版本 仅推荐该系列i5款 ThinkPad X系列 推荐X390 个人认为X系列近几年最良心的产品 性
  • 如何编译Python文件?

    编译Python文件 一 编译Python文件 二 批量生成 pyc 文件 一 编译Python文件 为了提高加载模块的速度 强调 强调 强调 提高的是加载速度而绝非运行速度 python解释器会在 pycache 目录中下缓存每个模块编译
  • PRD概述

    一 Pentaho 整体架构 cc 二 Client tools 1 Report Designer 报表创建工具 如果想创建复杂数据驱动的报表 这是合适工具 2 Design Studio 这是基于eclipse的工具 你可以使用它来创建
  • 更改Ubuntu软件镜像为清华镜像 sourcelist

    1 将原始的source list复制替换 sudo cp etc apt sources list etc apt sources list old 2 使用vim打开source list sudo vim etc apt source
  • STM32F103移植RT-Thread完整过程

    前言 RT Thread官网有很多通过IDE一键移植的方法 本文选择的是手动移植 文末提供移植好的完整工程 RT Thread 有3个版本 分别是标准版本 Nano版本 Smart版本 本文选择的是最简单的Nano版本 RT Thread
  • TMS320F28377X芯片SCI模块RS485通信,数据末尾被0xFF替换的问题解决

    SCI串口通信 用RS232方式 SCI模块 用如下的 直接这样 就可以发送 void Write SCIC Uint8 pBuf Uint16 len rs232 Uint16 i for i 0 i lt len i while Sci
  • 如何打包jar

    http www 2cto com kf 201204 129495 html 方法一 通过jar命令 jar命令的用法 下面是jar命令的帮助说明 用法 jar ctxui vfm0Me jar file manifest file en