`
zyz611
  • 浏览: 95209 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

替换JAR包中的文件

 
阅读更多
scriptHome=`pwd`
legoPlatHome=$scriptHome/LEGO_V100R001
echo  $scriptHome > scriptHome
echo  $legoPlatHome > legoPlatHome
log=$scriptHome/changelog


debug()
{
    echo $1 >> $log
}

showMessage()
{
    echo $1
    debug $1
}

checkFile()
{
    if [ $# != 1 ]
    then
       debug "please check the input file parameter !!!!!!!!!!!!!!"
       return 1;
    fi;
    
   

    if [ ! -f $1 ]
    then
         debug "please check $1 !!!!!!!!!!!!!!!!"
         return 1;
    fi;

    return 0;
}

checkDir()
{
    if [ $# != 1 ]
    then
       debug "please check the input dir parameter !!!!!!!!!"
       return 1;
    fi;

    if [ ! -d $1 ]
    then
         debug "please check $1 !!!!!!!!!!!!!!!!"
         return 1;
    fi;

    return 0;
}

#1 new , 2 old
checkTwoFile()
{
    if [ $# != 2 ]
    then
       debug "please check the input two file parameter !!!!!!!!!!"
       return 1;
    fi;

    diff $1 $2

   if [ $? != 0 ]
   then
      debug "the two file  $1 $2  are different,please check $1 !!!!!!!!!!!!!!!!! "
      return 1;
   fi;
}

#$1 the ism replace file's dir,$2 the file name,$3 LEGO dir
replaceFile()
{
    if [ ! -f $1/$2 ]
    then
        debug "Please check the file. $1/$2 does exist."
return 1
    fi;

    if [ ! -f $1/$2_old ]
    then
        debug "Please check the file. $1/$2_old does exist."
return 1
    fi;

    if [ ! -f $3/$2 ]
    then
        debug "Please check the file. $3/$2 does exist."
return 1
    fi;

    checkTwoFile $3/$2 $1/$2_old
    cp $1/$2 $3
}

getScriptHome()
{
    return `pwd`
}

getlegoPlatHome()
{
    scriptHome=getScriptHome
    return $scriptHome/LEGO_V100R001
}

tmpDir=/opt/`date +'%Y%m%d%I%M%S'`
export tmpDir

initJar()
{
    if [ -d $tmpDir ]
    then
        debug "The dir exists,it should be empty,please modify the scripty."
        exit 1;
    fi;

    mkdir $tmpDir

    if [ ! -f $1 ]
    then
        debug "Please check the file exists $1."
exit 1
    fi;

    if [ ! -f $2 ]
    then
         debug "Please check the file exists $2."
         exit 1
    fi;
    bundleName=`echo $2 | awk -F / '{print $NF}'`

    debug "begin to change $bundleName."

    unzip $2 -d $tmpDir > /dev/null 2>&1
}

zipFile()
{
bundleName=`echo $1 | awk -F / '{print $NF}'`
cd $tmpDir

zip -r $bundleName * > /dev/null 2>&1
bundleDir=`dirname $1`
debug "copy $bundleName to $bundleDir"
mv $bundleName $bundleDir
rm -rf $tmpDir
        debug "finish to change $bundleName."

cd $scriptHome
}

replaceFileInJar()
{
   
    replaceFileName=`echo $1 | awk -F / '{print $NF}'`

    bundleName=`echo $2 | awk -F / '{print $NF}'`

    for f in `find $tmpDir -name $replaceFileName`
    do
        debug "copying the $replaceFileName to $f"
        cp $1 $f
    done;
  
     zipFile $2

}

replaceFileInJarAll()
{
    initJar $1 $2
    replaceFileInJar $1 $2
}

#$1 file , $2 bundle, $3 old file
compareRepalceFileInJar()
{
initJar $1 $2
replaceFileName=`echo $1 | awk -F / '{print $NF}'`

        for f in `find $tmpDir -name $replaceFileName`
        do
checkTwoFile $f $3
if [ $? = 0 ]
then
debug "copying the $replaceFileName to $f"
cp $1 $f
fi;
        done;

       zipFile $2
}
分享到:
评论

相关推荐

    删除jar包中的指定文件

    标题“删除jar包中的指定文件”涉及到的是Java开发中对已打包JAR文件进行操作的知识点。在Java中,JAR(Java Archive)文件是一种归档格式,用于将多个类文件和其他资源组合到一个单一的文件中,方便分发和执行。...

    修改jar包中的class文件

    本文将详细介绍如何在不重新编译整个项目的情况下,修改并替换JAR文件中的class文件。 首先,我们要了解JAR文件的结构。JAR(Java ARchive)文件是Java平台上的一个标准归档格式,它包含了一个或多个类文件以及其他...

    jclasslib修改jar包里面的class文件包含jar

    6. **替换并重新打包**:完成修改后,将修改后的类文件或整个JAR替换回原位置。可以使用`jar`命令行工具或者第三方工具如`7-Zip`来重新打包JAR。确保保持原始的目录结构。 7. **测试修改**:最后,运行你的应用程序...

    java实现class的热替换

    java实现class的热替换

    jar 包 内文件读取 文件内容

    - Maven和Gradle等构建工具允许你配置如何打包和处理JAR文件中的资源,比如在构建过程中自动处理资源文件的复制和替换。 通过这些方法,开发者可以方便地访问和操作JAR文件内部的文件内容,无论是简单的文本文件...

    Spring bean 动态注册,jar包热替换

    可以实现jar的热替换。spring的bean动态加载则需要对相应的bean进行动态注册,以及jar与class文件动态加载。测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态...

    eclipse查看jar包class文件源码插件,jar包反编译查看工具

    在IT行业中,开发人员经常需要对已编译的.jar文件进行反编译,以便查看其中的源代码。这是因为有时我们可能需要理解别人的代码实现,或者查找某个类或方法的实现细节。Eclipse作为一款强大的Java集成开发环境,提供...

    jar命令的安装与使用

    在日常开发中,经常需要使用 jar 命令来替换 jar 包中的文件,但是在使用 WinRAR 解压替换时可能会出现权限问题,这时可以使用 jar 命令来解决问题。 安装 jar 命令 --------------- 要使用 jar 命令,需要先安装 ...

    Java读取Excel文件jar包

    本篇文章将详细讲解如何使用给定的jar包——opencsv-2.3.jar、poi-3.7-20101029.jar以及poi-ooxml-3.7-20101029.jar,来读取xls、CSV和xlsx格式的Excel文件。 首先,让我们关注opencsv-2.3.jar。OpenCSV是一个轻量...

    Java加载。jar包

    ### Java加载.jar包详解 #### 一、Java 类加载机制概览 自 JDK 1.2 版本之后,Java 类加载机制发生了一个重要的变化,引入了一种名为**类加载委托**的概念。这一机制的核心思想在于,如果某个 `ClassLoader` 无法...

    Jfinal相关jar包及配置详情

    6. `commons-fileupload-x.x.x.jar`和`commons-io-x.x.x.jar`:用于文件上传功能。 **Jfinal配置** 1. **项目结构**:通常遵循`WEB-INF`、`src`、`lib`、`web.xml`的标准目录结构。 2. **web.xml配置**:配置Jfinal...

    jar包解析工具

    `jdgui_0.3.6`是一个实用的`jar`包解析工具,它提供了图形界面,方便开发者查看`jar`包中的类文件反编译后的源代码。这对于调试、学习第三方库的内部工作原理,或者排查代码问题非常有用。使用`jdgui`,用户只需拖放...

    解决java打包之后无法加载静态资源的问题SWTResourceManager.java源码

    利用swt中的一个获取图片的类SwingResourceManager 来解决将程序打为使用java打包之后,生成的jar包中图片找不着的。这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成...

    java jar包加密.zip

    - **替换原文件**:将加密后的文件替换原有的JAR包中的文件,或者创建一个新的加密过的JAR包。 - **保存密钥**:加密后的JAR包需要对应的密钥才能解密,所以密钥必须安全保存。这可以通过多种方式实现,比如将其...

    local_policy.jar和US_export_policy.jar java解密

    因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有...将local_policy.jar和US_export_policy.jar这两个文件替换%JRE_HOME%\lib\security和%JDK_HOME%\jre\lib\security下原来的文件,注意先备份原文件。

    解决android-support-v4.jar无法找到checkSelfPermission

    你可以通过Gradle构建系统来更新,或者在Eclipse中手动替换旧的`android-support-v4.jar`文件。 2. **导入错误**:检查你的代码中是否正确导入了`android.support.v4.content.ContextCompat`包。错误的导入可能导致...

    java源码修改教程-本地maven仓库中的三方jar包修改

    - 使用修改后并编译好的`.class`文件替换jar包中的原始`.class`文件。 6. **重新打包jar** - 进入解压后的根目录,打开命令行工具(cmd)。 - 输入以下命令来重新打包jar文件:`jar cvf <jar包名称>.jar <jar包根...

    修改Jar包工具

    4. **替换原文件**:将新编译的.class文件替换掉原来JAR包中的对应文件。这一步需要注意保持文件路径和原始文件的完整性,因为JAR文件内部是基于文件路径进行查找的。 5. **打包新JAR**:最后,使用`jar`命令或者...

    jar包改造过程.v1.0.20180517.zip

    4. **编译源码**:使用Java编译器将修改后的源码编译成.class文件,替换原jar包中的对应文件。 5. **打包测试**:将修改后的.class文件重新打包成jar,并在实际环境中进行测试,确保改造后功能正常且未引入新的问题...

    baksmali 和 smali

    可以用来自己修改Android手机中的jar包,当然要有root,你懂得~ java -jar baksmali-1.2.6.jar classes.dex -o out/ ...6. 把生成的classes.dex替换3中jar包中的classes.dex文件, push到手机中。重启system_process

Global site tag (gtag.js) - Google Analytics