自己用java.io.util.jar.*包下面的类写了一个打jar包的工具类,用法如下:
将以下代码拷贝后在自己项目中新建一个java class(位置任意,只要在当前项目下即可),然后将代码粘贴保存后直接运行,就会在workspace里生成一个与项目名称相同的jar文件。
【Java Code】
-----------------------------------------------------------------------------------------------------------------------
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import java.util.logging.Logger;
/**
* Make Jar util
* @author laiyujun@vip.qq.com
* QQ: 381418273
*
*/
public class MakeJarUtil {
private Logger log = Logger.getLogger(this.getClass().getName()) ;
private String path = System.getProperty("java.class.path") ;
private String currentPath = path + File.separator + this.getClass().getName().replaceAll("\\.", "\\\\") +".class" ;
private int i=0 ; // count file ;
private int j=0 ; // count dir ;
/**
* @param args
*/
public static void main(String[] args) {
MakeJarUtil util = new MakeJarUtil() ;
if(util.path.indexOf(";") != -1){
String path[] = util.path.split(";") ;
util.path = path[0] ;
}
util.log.info("classpath:"+ util.path) ;
File file = new File(util.path) ;
File jarFile = new File(System.getProperty("user.dir") + ".jar") ;
JarOutputStream jarOut =null ;
long start = System.currentTimeMillis() ;
try {
jarOut = new JarOutputStream(new FileOutputStream(jarFile)) ;
jarOut.setComment("This jar maked by my program") ;
util.write(file, jarOut) ; //execute zip jar file
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
jarOut.close() ;
} catch (IOException e) {
e.printStackTrace();
} finally {
long end = System.currentTimeMillis() ;
util.log.info("zip use total time【"+(end-start)+"ms】") ;
}
}
}
private void write(File file, JarOutputStream jarOut) throws Exception {
if(null == file) return ;
String path = this.path + File.separator ;
int temp = 0 ;
InputStream input = null ;
File[] list = file.listFiles() ;
for (File file2 : list) {
if(file2.isDirectory()){
log.info("Dir【"+ path + file2.getName() +"】..." + (++j));
write(file2, jarOut) ;
}else{
if(!file2.getPath().equals(currentPath)){ //current file unzip
log.info("Zip【"+ file2.getPath() +"】file "+ (++i));
String parentPath = file2.getAbsolutePath().replace(path, "") ; //get the ref classpath path
jarOut.putNextEntry(new JarEntry(parentPath)) ;
input = new FileInputStream(file2) ;
while((temp = input.read()) != -1){
jarOut.write(temp) ;
}
input.close() ;
}
}
}
}
}
分享到:
相关推荐
java实现http协议jar包,是一个访问http协议工具类,导入全部jar包到项目里面,调用httpRequest方法及可实现http协议访问,以及获取代理IP方法封装
eclipse项目工程建立以及实现的工程中,需要的jar包工具类。
本文介绍了如何对 SpringBoot 项目进行 Jar 包加密,以防止反编译。通过使用代码混淆和加密字节码等技术,可以有效地保护源代码的安全性,降低被恶意攻击的风险。然而,需要注意的是,混淆和加密并不能完全防止反...
简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行增删改查了。代码看着也很简洁。 例如: 增删改查使用的类:QueryRunner类+...
打包:将编译后的*.calss文件打包成 jar或war包; 部署:将打包后的war文件部署到制定的web应用服务器中去。(tomcat的webappers中去) ******************************* ant默认执行build.xml文件 ant是使用的java...
Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache ...
在C++中可以用STL里面的multimap来解决这个问题,但Java中没有类似multimap这样的东西,除非自己实现一个。 Pinyin4j就是为了解决类似这样的问题的。它是sourceforge.net上的一个开源项目,功能非常强大: + ...
Java实现Zip压缩文件操作的工具类 文章介绍:https://blog.csdn.net/rongbo91/article/details/117747042 (可作为Jar依赖包直接使用) 1、项目使用前,请进入rdc-bom目录下,执行mvn clean install命令 2、可...
基于XStream,DOM4J实现xml多种工具类,项目中jar包已齐全 可直接运行。希望对大家有所帮助
实现功能:传入路径,返回base64图片编码(原图抠图及滑块图)、图片坐标值、...使用方法:1、将jar包导入项目中; 2、调用工具类 ImageVo imageVo = GraphicCodeUtil.generate("E:\\data\\3322.jpg",width,height);
jave包是经过兼容Linux系统重新打包的,jar包和转码工具类都是我项目中亲测过的。可以成功实现音频转码,报一个错误但是不耽误转码。
(附件中提供了该工具包的jar包,及源文件以供研究) BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供...
最近想总结一下关于应用如何封装自己的SDK给第三方应用使用,提供jar包给第三方使用是现在比较常见的方式,方式有很多种,但是具体的大体思路都是一样的,今天写了一个SDK封装的大体框架Demo,方便后期查查阅: 工具基于...
非常实用的工具,将maven类java工程打包为zip格式、tar.gz格式,并且实现jar包 配置文件分离,方便部署。
最新GSON源文件、API文档和项目用Jar文件。...一个Jar包也要5积分,有一个建议,寻找工具类代码时加上一个github要好很多,不但免费还最新。如问度娘: gson github要好于gson 下载~csdn 没有0积分的了,只好选1了。
java web项目的构建工具。可以实现jar包的依赖管理等。
项目文件全包含。SSH实现真分页(注解配置),建立简单数据库,直接可跑。做小型项目直接修改就行而且封装了分页工具类哦。由于使用接口较麻烦,没用spring注入,此处声明。
- CommonTools 共用的工具类,包括对 `Apktool` , `Jarsigner` , `zipalign` 的封装 - UIControls_35 共用的UI类,对大部分控件的样式都是在这里设置的 - UmengMarket Marekt 组件,现在还没有实现 ...
它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态"AOP"框架。 关于java字节码的处理,目前有很多工具,如bcel,asm。不过这些都需要直接跟虚拟机指令打交道。如果你不想了解...
Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架。简单,却很强大!Jodd = Tools IoC MVC DB AOP TX JSON HTML < 1.5 MbJodd 被分成众多模块,按需选择,其中工具类模块有:jodd-core 一些工具类...