`
keyboardsun
  • 浏览: 58242 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

读取ear,jar压缩包里面的文件。

阅读更多

今天写ComFrame属性配置工具,参照网上的资料,实现了题目的功能。
支持原创啊。

这里的流程是这样的。层层剥皮。

//------------------
读取jar文件里面的文件
//----------------
import java.io.*;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

public class ReadFileImpl implements IReadFile{

public String readFile() {
String result = "";
try {
String currentJarPath = ReadFileImpl.class.getProtectionDomain().getCodeSource().getLocation().getFile();
JarFile currentJar = new JarFile("conf.jar");
JarEntry dbEntry = currentJar.getJarEntry("text.properties");
InputStream in = currentJar.getInputStream(dbEntry);

//FileInputStream fis = new FileInputStream(currentJarPath+"/text.properties");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String readLine = null;
while((readLine = br.readLine())!= null){
result = result + readLine;
}
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return result;
}

}

//----------------------
解压某个文件 把conf.jar从UWFE.ear里面解压出来
//---------------------
JarFile currentJar = new JarFile(path + "/UWFE.ear");
JarEntry dbEntry = currentJar.getJarEntry("conf.jar");
InputStream in = currentJar.getInputStream(dbEntry);
FileOutputStream fos = new FileOutputStream(path+"/conff.jar", true);
int i = 0;
while ((i = in.read()) != -1) {
fos.write(i);
}
fos.flush();
fos.close();

//------------------------
打包 把conf.jar打包到UWFE.ear里面。
//------------------------
private static boolean EAR(){
try {

File tempJar = new File(filepath+"/UWFE1.ear");
tempJar.createNewFile();
JarFile jar = new JarFile(filepath+"/UWFE.ear");
FileOutputStream f = new FileOutputStream(tempJar);
JarOutputStream newJar = new JarOutputStream( f);
byte buffer[] = new byte[100];
int bytesRead;

// Add back the original files
Enumeration entries = jar.entries();

while (entries.hasMoreElements()) {
// Prompt for copy
JarEntry entry = (JarEntry) entries.nextElement();
if(entry.toString().equals("conf.jar"))
continue;
InputStream is = jar.getInputStream(entry);
newJar.putNextEntry(entry);
while ((bytesRead = is.read(buffer)) != -1) {
newJar.write(buffer, 0, bytesRead);
}
newJar.flush();
is.close();
} // Add new file last
jar.close();
JarEntry entry = new JarEntry("conf.jar");
newJar.putNextEntry(entry);
FileInputStream fis = new FileInputStream(filepath+"/conf.jar");
while ((bytesRead = fis.read(buffer)) != -1) {
newJar.write(buffer, 0, bytesRead);
}
newJar.flush();
fis.close();
newJar.close();
f.close();
return true;
} catch (Exception ex){
ex.getMessage();
return false;
}
}

如果需要转载,请标明出处,尊重偶的原创版权啊。

http://www.chinacsharp.net

http://blog.csdn.net/keyboardsun

作者keyboardsun

分享到:
评论

相关推荐

    高压7-Zip压缩包

    **压缩与解压缩**:7-Zip 支持多种压缩格式,如 7z、ZIP、GZIP、BZIP2、TAR 等,并能读取 RAR、CAB、ISO、ARJ、LZH、CHM、Z、7z、TAZ、LZMA、TB2、TBZ、TBZ2、TGZ、TXZ、TZ、XZ、EAR、WAR、JAR 等多种格式的文件。...

    asm-attrs-1.4.3.jar.zip

    通常,JAR文件会被Java虚拟机(JVM)用来执行包含在其中的类,或者作为部署单元,比如Web应用的WAR文件和EJB的EAR文件。 压缩包内的文件名"asm-attrs-1.4.3.jar"应该是ASM库的"attrs"模块的实现,包含了处理Java类...

    WAS 解压,was解压ear,C#源码.zip.zip

    在WAS中,EAR(Enterprise Archive)文件是一种打包格式,用于包含整个Java EE应用的所有组件,如EJB、WAR、JAR等。 2. **EAR文件**:EAR文件是Java EE应用的容器,它包含了应用的元数据、Web模块、EJB模块和其他...

    开发常用jar3

    首先,我们来看看描述中提到的JAR文件类型——J2EE应用程序的EAR文件(Enterprise Archive)。EAR文件是一种特殊的JAR,用于打包整个Java企业级应用,包括Web组件、EJB(Enterprise JavaBeans)、库和其他必要的资源...

    Maven压缩包,直接解压后可以使用

    5. **打包**:根据项目类型(如JAR、WAR、EAR)打包项目,生成最终的可部署文件。 6. **部署**:将打包后的文件上传到远程仓库,供其他项目使用。 ### Maven命令行使用 1. **安装Maven**:下载Apache Maven 3.6.1...

    apache-maven-3.6.3-bin.zip

    Maven 的插件系统允许扩展其功能,例如支持不同的打包格式(JAR、WAR、EAR 等)或执行特定的任务。此外,Maven 的标准目录结构使得项目更容易理解和维护,增强了团队之间的协作效率。 总之,Apache Maven 3.6.3 是...

    Maven打包实战.zip

    在Maven中,打包(package)是核心任务之一,它将编译后的类文件和相关的资源文件打包成特定格式,如JAR、WAR或EAR。这个过程可以通过执行`mvn package`命令来完成。在Eclipse这样的集成开发环境(IDE)中,也可以...

    maven一键部署相关安装包及脚本

    - **依赖管理**:Maven通过读取项目配置文件(`pom.xml`)来管理项目的依赖关系,自动下载所需的库文件并解决依赖冲突。 - **构建生命周期**:Maven有一套预定义的构建生命周期,包括清理、编译、测试、打包、集成...

    apache-maven-3.5.4.zip

    Maven可以将Java源代码编译成JAR、WAR或EAR文件,这些是Java应用程序的标准格式。例如,`mvn package`命令会执行完整的构建流程,包括编译、测试和打包,最后生成可部署的文件。 Maven的另一个关键特性是依赖管理。...

    apache-maven-3.6.3-bin.tar.gz

    6. **打包**:将编译后的结果打包成指定格式,如JAR、WAR或EAR。 7. **验证**:执行集成测试,确保项目质量。 8. **部署**:将最终的打包文件发送到远程仓库,供其他项目使用。 **Maven的常用命令:** 1. `mvn ...

    maven3.3.3/ForWindows/ForLinux/src

    5. **打包**:根据项目类型(如JAR、WAR或EAR)打包结果。 6. **集成测试**:如果配置了,执行集成测试。 7. **验证**:对打包后的文件进行验证,确保可部署。 8. **部署**:将最终的包上传到远程仓库,供其他项目...

    apache-maven-3.6.0-bin.zip

    通过熟练掌握Maven,开发者可以更好地组织项目结构,管理依赖,自动化构建,以及生成各种构建产物,如JAR、WAR或EAR文件。同时,Maven还促进了团队间的合作,通过共享POM文件,确保了项目的可重复构建和一致性。

    ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b

    在EJB架构中,通常会有一个Web应用(WAR文件)作为客户端,调用EJB服务(EAR文件)中的业务逻辑。 5. **CMP与BMP的区别**:CMP简化了开发过程,但可能限制了数据库访问的灵活性;而BMP提供了更大的自由度,允许...

    apache-maven-3.6.2_maven_

    在package阶段,编译后的代码被打包成JAR、WAR或EAR等格式。 此外,Maven的插件系统非常强大,可以通过安装各种插件来扩展其功能,例如生成Javadoc,执行集成测试,部署应用程序到远程服务器等。这些插件的配置都可...

    apache-maven-3.0.4

    - 初始化:设置工作目录、读取POM文件、初始化构建环境。 - 编译:将源代码编译为class文件。 - 测试:运行单元测试,生成测试报告。 - 打包:将编译后的结果打包成指定格式,如JAR、WAR或EAR。 - 部署:将打包...

    maven3.3.3以及源码包

    4. **生成工件**:Maven 根据项目的打包类型(如 JAR、WAR 或 EAR),将编译后的结果打包。 5. **部署**:如果配置了部署目标,Maven 可以将最终的工件部署到远程仓库。 ** Maven 源码分析 ** 压缩包中的 "apache...

    jboss-4.2.2.GA

    2. **模块化架构**:JBoss采用模块化设计,将各种服务和组件打包在独立的JAR或WAR文件中,使得配置和管理更为灵活。 3. **热部署**:允许开发者在运行时更新应用程序,无需重启服务器,提高了开发效率。 4. **EJB ...

    master-MavenHappyPathTest-Maven-build-error-test-7a9ab11-195:说明

    6. **打包**:将编译后的代码打包成指定格式(如JAR、WAR或EAR)。 7. **集成测试**:如果有,运行更复杂的集成测试。 8. **验证**:检查最终产出物是否符合发布要求。 9. **部署**:将打包后的文件发送到指定的...

Global site tag (gtag.js) - Google Analytics