1. 读取Jar包里的MANIFEST.MF文件(读取EAR包里的文件相同的操作),大概步骤如下:
1)用Jar包的绝对路径作为构参,New一个JarFile类
2)用Jar包里的一个文件文件的相对路径作为参数,调用JarFile类的一个getJarEntry的方法,得到一个JarEntry类
3)再用这个Entry类作为参数,调用JarFile的getInputStream文法,得到这个文件的InputStream
4)接下来对InputSteam的操作与普通读取文件的方法相同
- StringBuffer sb = new StringBuffer();
- try
- {
- JarFile testJarFile = new JarFile("c:/test/common.jar");
- JarEntry jarEntry = testJarFile.getJarEntry("META-INF/MANIFEST.MF");
- InputStream jarEntryInputStream = testJarFile.getInputStream(jarEntry);
- BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(jarEntryInputStream));
- String readLine = null;
- while ((readLine = bufferedReader.readLine()) != null)
- {
- sb.append(readLine);
- sb.append("\r\n");
- }
- System.out.println(sb.toString());
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
2. 输出ear包里的jar到其它目录,与从Jar包读取相似,操作步骤如下
1)用Ear包的绝对路径作为构参,New一个JarFile类
2)用目标Jar包的相对路径作为参数,调用JarFile的getJarEntry方法,得到一个JarEntry类
3)用这个JarEntry作为参数,调用JarFile的getInputStream方法,取得这个Jar包文件的InputStream
4)接下来对InputStream的操作与普通写文件操作相同
- try
- {
- JarFile testEarFile = new JarFile("C:/test/test.ear");
- JarEntry jarEntry = testEarFile.getJarEntry("target.jar");
- InputStream jarEntryInputStream = testEarFile.getInputStream(jarEntry);
- FileOutputStream fileOutputStream = new FileOutputStream("c:/test/target.jar", true);
- int b = 0;
- while ((b = jarEntryInputStream.read()) != -1)
- {
- fileOutputStream.write(b);
- }
- fileOutputStream.flush();
- fileOutputStream.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
3. 替换Ear包里的某些Jar包, 相对之前几个实例,这个会相对复杂一些,步骤如下:
1)创建一个目标的Ear包File类,然后再得到一个JarOutputStream,接下来会往这里添加需要的Jar包
2)读取源Ear包,然后JarFile类的entries()方法遍历源Ear包的所有文件
3)判断要替换的Jar文件,跳过它,其它的文件马上写入目标的Ear包里
4)关闭源Ear包
5)建立要替换进来的Jar包的JarEntry,用FileInputStream类读取这个Jar包,然后马上写进目标Ear包里
6)Flush JarOutputStream
7)依次关闭其它仍未关闭的资源
- try
- {
- //先创建目标的ear包,再New一个JarOutputStream,以备输出目标Ear包之用
- File targetEarFile = new File("c:/test/target.ear");
- targetEarFile.createNewFile();
- FileOutputStream targetEarFileOutputStream = new FileOutputStream(targetEarFile);
- JarOutputStream newJarOutputStream = new JarOutputStream(targetEarFileOutputStream);
- byte buffer[] = new byte[100];
- int bytesRead;
- //循环读取源Ear包里除开要替换的Jar包外的其它文件,并将这些文件写到目标Ear包里去
- JarFile sourceEarFile = new JarFile("c:/test/sourceEar.ear");
- Enumeration sourceEarJarEnties = sourceEarFile.entries();
- while (sourceEarJarEnties.hasMoreElements())
- {
- JarEntry jarEntry = (JarEntry) sourceEarJarEnties.nextElement();
- //要替换Jar包,跳过它
- if (jarEntry.toString().equals("sourceJar.jar"))
- {
- continue;
- }
- //其它文件马上写到目标Ear包里去
- InputStream jarInputStream = sourceEarFile.getInputStream(jarEntry);
- newJarOutputStream.putNextEntry(jarEntry);
- while ((bytesRead = jarInputStream.read(buffer)) != -1)
- {
- newJarOutputStream.write(buffer, 0, bytesRead);
- }
- newJarOutputStream.flush();
- jarInputStream.close();
- }
- //到这里源Ear包己经没有用了,close掉
- sourceEarFile.close();
- JarEntry targetJarEntry = new JarEntry("targetJar.jar");
- newJarOutputStream.putNextEntry(targetJarEntry);
- FileInputStream targetJarFileInputStream = new FileInputStream("c:/test/targetJar.jar");
- while ((bytesRead = targetJarFileInputStream.read(buffer)) != -1)
- {
- newJarOutputStream.write(buffer, 0, bytesRead);
- }
- newJarOutputStream.flush();
- targetJarFileInputStream.close();
- newJarOutputStream.close();
- targetEarFileOutputStream.close();
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
相关推荐
openfire开发配置需要的3个jar包coherence.jar、coherence-work.jar、tangosol.jar
mail.jar与activation.jar 希望对大家有帮组啊!
java 读写word 转html 等操作实例及jar包
jxl操作excel实例,jxl jar包下载 jxl操作excel实例,jxl jar包下载 jxl操作excel实例,jxl jar包下载
HttpClient框架所需的jar包和一个简单实例, HttpClient框架所需的jar包和一个简单实例
目前JAVA mail api 的所有版本都需要JAF的支持。...目前Java Mail还没有被加在标准的Java 开发工具中,需下载javamai.jar和activation.jar放置在实例程序的WEB/INF/lib目录下,此资源提供了这两个Jar。
通过这个jar可以帮助你实现读出表格数据并将表格数据批量导入到数据库和表格的写入功能。
java+读写word+转html+等操作实例及jar包
POI 官方API大全及基本操作实例(含jar包),通过实例和查看API,你能够很快掌握基本的excel操作。
Java 操作Excel poi读写excel,所需要的jar包 https://blog.csdn.net/u014646662/article/details/83217382
java中jxl.jar读写excel和jdom.jar读写xml的例子(含有所需jar包),经典实用。
将java应用程序做成开机自启动服务,附件中通过nssm将jar应用程序做成服务的操作说明及实例。下载即可运行,可仿照类似做成服务! 第一步: 将 jar 包及其依赖包放置运行目录. 假设目录结构为 /lib(第三方依赖) app...
Jacob 操作WORD 完整实例 附带JAR DLL Jacob 操作WORD 完整实例 附带JAR DLL
Uploadify上传插件 jar包及使用实例
简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar...
webservice axis2 cxf jar包及简单实例
Java读写docx文档所需jar包,通过POI方式 读取docx文档,相关代码在博客中有,可以读取文档内容并替换文档中需要被替换的内容。
文件包含了jar包及其源码,提供了各种数据读写,IO流读写的API,省去了自己操作IO流和数据的繁琐,提供了许多方法供调用,可以用来学习或者用在数据操作或涉及IO操作的代码编写中,绝对有收藏价值!
JAVA利用jxl.jar读写Excel内容,非常方便实用的。
war包_jar包_ear包_及打包方法