将java源码打成jar包
方法一:通过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/ .
一、打包成一般的jar包
输入如下命令即可:
- jar cvf counter.jar -C bin .
二、打包成可运行的jar包
要打包成可运行的jar包,需要在MANIFEST.MF文件中指定主类,以Java源代码行数统计程序的打包为例,演示如何打包:
1)首先编辑MANIFEST.MF文件,内容如下:
- 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命令进行打包:
- jar cvfm counter.jar MANIFEST.MF -C bin .
说明:
参数f:指定打包后的包名。
参数m:指定自定义的MANIFEST.MF清单文件,否则,JDK会自动生成不包含Main-Class的默认清单。
参数c:指定是创建新的归档文件。
参数v:在标准输出中生成详细输出,该选项是可选的。
方法二:使用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按钮,打包完成。
将java源码打成jar包的更多相关文章
- Intellij IDEA将java源码打成jar包
- 转】MyEclipse使用总结——使用MyEclipse打包带源码的jar包
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4136303.html 感谢! 平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不 ...
- MyEclipse使用总结——使用MyEclipse打包带源码的jar包
平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...
- MyEclipse打包带源码的jar包
平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...
- Eclipse使用总结——使用Eclipse打包带源码的jar包
平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...
- eclipse导出附带源码的jar包
最近在搞Andengine游戏开发,发现andengine的jar包可以直接点击查看源码,而其他项目的jar包却看不了,因此自己研究了下如何生成可以直接查看源码的jar包. 1.eclipse中点击项 ...
- 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案
JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...
- 精尽Spring Boot源码分析 - Jar 包的启动实现
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- java源代码如何打成jar包
链接地址:http://jingyan.baidu.com/article/046a7b3ed8b23ef9c27fa9b9.html 有时自已写了一个很巧妙的方法,想分享给别人用,这时我们就可以将其 ...
随机推荐
- Invoke BeginInvoke
http://www.codeproject.com/Articles/10311/What-s-up-with-BeginInvoke http://www.codeproject.com/Arti ...
- 从Excel表格导入数据到数据库
数据库:SQL 1.小数据直接粘贴 2.用导入向导 3.用SSIS包 4.用SQL语句 现在详细说一下第4种方法,以.xlsx文件为例 .xlsx文件需要用provider“Microsoft.ACE ...
- git恢复被修改的文件
恢复到最后一次提交的改动: git checkout -- + 需要恢复的文件名 但是,需要注意的是,如果该文件已经 add 到暂存队列中,上面的命令就不灵光喽 需要先让这个文件取消暂存: git r ...
- 记一次SSH登陆失败问题的定位
创建用户之后,使用ssh协议登陆提示失败. useradd -d /home/hdp -m hdp -g dba -s /bin/bash 通过命令 ssh -v hdp@127.0.0.1 登陆,查 ...
- POJ (线段相交 最短路) The Doors
题意: 一个正方形中有n道竖直的墙,每道墙上开两个门.求从左边中点走到右边中点的最短距离. 分析: 以起点终点和每个门的两个端点建图,如果两个点可以直接相连(即不会被墙挡住),则权值为两点间的欧几里得 ...
- 【转】Android学习基础自定义Checkbox组件
原文网址:http://forum.maiziedu.com/thread-515-1-1.html heckbox组件是一种可同时选中多项的基础控件,即复选框,在android学习中,Checkbo ...
- git提交小结
git有工作区和暂存区的概念,工作区就是可以看到文件目录的地方,暂存区则是提交代码的地方 第一步,进入文件工作目录,终端输入命令 $ dir1/dir2: 第二步,查看哪些文件已经修改,输入命令 $ ...
- CF GYM 100703L Many questions
题意:题意真坑……龙要问一系列问题,王子骑士公主分别以一个整数回答,如果王子和公主答案差的绝对值比骑士和公主答案差的绝对值小则说王子和公主的答案更相似,反过来如果前者比后者大则说骑士和公主的答案更相似 ...
- 【管理工具】Kerberos简单应用
Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证.可以用于防止窃听 ...
- 浏览器插件 - Chrome 对 UserScript 的声明头(metadata)兼容性一览
1.这里的UserScript指的是,油猴插件或者Tampermonkey插件等支持的格式如下例子: // ==UserScript== // @name // @namespace http://A ...