java 打包jar文件实战
本文只介绍实用步骤,预备知识请自查阅:
参考资料:
http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html
http://www.skylit.com/javamethods/faqs/createjar.html
http://geeksun.iteye.com/blog/464690
http://stackoverflow.com/questions/18146361/how-to-create-jar-file-with-package-structure
-----------------------------------------------------------
一 未引用外部包的类文件打包:
1、例如我在目录:E:\eclipse 下创建helloworld.java:
public class helloworld {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello World!!");
}
}
cd /d e:\eclipse
2、编译helloworld.java:
e:\eclipse>javac helloworld.java
3、进行打包工作:
e:\eclipse>echo Main-Class: helloworld> manifest.txt
e:\eclipse>jar cvfm hello.jar manifest.txt helloworld.class
标明清单(manifest)
增加:helloworld.class(读入= 427) (写出= 290)(压缩了 32%)
e:\eclipse>java -jar hello.jar
Hello World!!
提醒:manifest.txt文件格式一定要注意:The text file must end with a new line(新起一行) or carriage return(回车)
二 引用外部包的类文件打包:
1、在路径:E:\eclipse\ftpTools\src 下有一个Hello.java 文件:
import org.apache.log4j.Logger;
public class Hello {
static Logger logger = Logger.getLogger(Hello.class);
public static void main(String[] args) {
// TODO Auto-generated method stub
logger.error("Hello world.");
logger.info("What a beatiful day.");
}
}
2、编译Hello.java:
E:\eclipse\ftpTools\src>javac -classpath lib\log4j-1.2.9.jar Hello.java
PS:两种方式配置classpath,①将引用的JAR包拷贝到JAVA_HOME\lib文件夹下,配置环境变量CLASSPATH,这样可直接javac Hello.java;
例如:;%JAVA_HOME%\lib\commons-net-3.3.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\commons-io-2.4.jar;%JAVA_HOME%\lib\log4j-1.2.9.jar
②编译时实用-classpath参数指定引用的JAR包路径;
3、进行打包工作:
3.1 创建好manifest.txt文件:
Manifest-Version: 1.0
Class-Path: lib\log4j-1.2.9.jar lib\commons-io-2.4.jar lib\commons-net-3.3.jar
Main-Class: Hello
3.2 运行JAR:
E:\eclipse\ftpTools\src>jar cvfm Hello.jar manifest.txt log4j.properties Hello.c
lass
标明清单(manifest)
增加:log4j.properties(读入= 1229) (写出= 380)(压缩了 69%)
增加:Hello.class(读入= 594) (写出= 378)(压缩了 36%)
E:\eclipse\ftpTools\src>java -jar Hello.jar
2013-12-15 14:50:01 ERROR Hello:12 - Hello world.
2013-12-15 14:50:01 INFO Hello:13 - What a beatiful day.
PS:此处实用的例子文件在一下链接可进行下载:
http://download.csdn.net/detail/indexman/6717405
---------------------------------
Dylan presents.
java 打包jar文件实战的更多相关文章
- Java 图片爬虫,java打包jar文件
目录 1. Java 图片爬虫,制作 .jar 文件 spider.java 制作 jar 文件 添加执行权限 1. Java 图片爬虫,制作 .jar 文件 spider.java spider.j ...
- java 打包jar文件以在没有安装JDK或JRE的机子上运行
前言: java号称“一次编译,到处运行”,但这有个前提,那就是你的机子上得安装java环境.对于开发人员或其他一些比较懂计算机的人来说这没什么,但是对于一些不懂计算机的人来说这会很麻烦,他们更希望的 ...
- Intellij打包jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attrib
下面是使用Intellij 打包jar文件的步骤,之后会有运行jar文件时遇到的错误. 打包完成. ================================================== ...
- Eclipse将android项目打包jar文件
Eclipse+android打包jar文件 蔡建良 2016-3-12 以Android-SlideExpandableListView开源框架为例,将源码Library打包成jar文件并包含R.c ...
- 关于在打包Jar文件时遇到的资源路径问题(二)
在关于<关于在打包Jar文件时遇到的资源路径问题(一)>中,以及描述了当资源与可执行JAr分离时的资源路径代码的编写问题,后来想了想,为什么将<Java核心技术卷一>中的程序1 ...
- Java的jar文件安装成windows 服务
Java的jar文件安装成windows 服务: 1.下载:nssm,复制到jar文件目录下 2. jar文件目录下创建bat文件[run.bat],内容为[java -jar 文件名.jar] 3. ...
- 关于在打包Jar文件时遇到的资源路径问题(一)
当我们将程序写好,并进行打包成Jar文件时,通常都带有各种资源,这些资源可以是图像或者声音文件,也可以是别的如文本文件或二进制文件等,这些资源都和代码密切相关.例如在一个JPanel类上显示一些可能变 ...
- AndroidStduio3.0 使用gradle将module打包jar文件
AndroidStduio3.0使用gradle将module打包jar文件,首先需要安装gradle. 打开控制台输入 open -e .bash_profile 命令,就可以打开 ...
- Java 执行jar文件出现版本错误信息
Java 执行jar文件出现版本错误信息 一.问题 执行jar文件出现如下错误信息: 二.解决方案 是因为在创建工程的时候选择的jdk编译版本,和执行jar环境的jdk版本不一致: 更改工程的jdk版 ...
- 打包jar文件 外部调用资源 so等
一个非常好的从jar文件中加载so动态库方法,在android的gif支持开源中用到.这个项目的gif解码是用jni c实现的,避免了OOM等问题. 项目地址:https://github.com/k ...
随机推荐
- [转帖]TLS 加速技术:Intel QuickAssist Technology(QAT)解决方案
https://zhuanlan.zhihu.com/p/631184323 3 人赞同了该文章 作者:vivo 互联网服务器团队- Ye Feng 本文介绍了 Intel QAT 技术方案,通过 ...
- 【转帖】Alpaca 7B:斯坦福从LLaMA-7B微调的语言模型
https://www.jianshu.com/p/f8f8f660d2c3 https://crfm.stanford.edu/2023/03/13/alpaca.html https://crfm ...
- 【转帖】如何使用route管理路由表
这里是引用 route快捷使用方法 我们一般管理路由有使用route命令 本身route使用大致有两种方法:但其实 在实际操作中,我们熟练掌握一种方法就可以了. route 有以下6种操作方法: 1) ...
- [转帖]一张图搞定redis内存优化及配置
https://www.jianshu.com/p/3195663af83e Redis内存优化及配置.png Redis优化及配置 Redis所有的数据都在内存中,而内存又是非常宝贵的资源.常用 ...
- [转帖]Native Memory Tracking 详解(4):使用 NMT 协助排查内存问题案例
https://www.modb.pro/db/557714 从前面几篇文章,我们了解了 NMT 的基础知识以及 NMT 追踪区域分析的相关内容,本篇文章将为大家介绍一下使用 NMT 协助排查内存问题 ...
- [转帖]Nginx动静分离详解以及配置
https://developer.aliyun.com/article/885602?spm=a2c6h.24874632.expert-profile.314.7c46cfe9h5DxWK 简介: ...
- 我在京东做研发 | 京东云算法科学家解析爆火的ChatGPT
令人惊艳的ChatGPT横空出世 背后有怎样的前沿技术支撑 走向大规模产品应用又有何局限 深耕对话式AI技术十余年 京东云算法科学家将带您一同走进技术世界 解析ChatGPT的技术亮点与局限 分享下一 ...
- @Transaction注解的失效场景
作者:京东物流 孔祥东 背景 事情是这样,最近在实现一个需求的时候,有一个定时异步任务会捞取主表的数据并置为处理中(为了防止任务执行时间过长,下次任务执行把本次数据重复捞取),然后根据主表关联明细表数 ...
- vue/cli的配置详解
查看vue/cli的配置 vue的脚手架隐藏了所有的webpack相关的配置,若是想要查看webpack的配置 你可以去执行 vue inspect > output.js 这样就可以查看它的配 ...
- vue中sync的使用原来这么简单
sync的使用场景 有些时候子组件需要修改父组件传递过来的prop, 要去改变父组件的状态的时候就需要使用aync 看见这里有些同学可能会问?? 不是说不可以修改父组件传递到子组件的值吗? 为啥要修改 ...