下面是shell脚本批量替换jar包中Class文件
#!/bin/sh #JAVA home path set JAVA_HOME=/usr/local/web/fit/WAS/install/61x/java export PATH=${PATH}:${JAVA_HOME}/bin #param 1 is jar file path. Sample path: /root/jar/app.jar appJar=$1 #param 2 is folder path which stores class files. Sample path: /root/classfiles filesTobeUpdated=$2 tempDir=$filesTobeUpdated/temp echo "delete temp directory" if [ -d $tempDir ] then rm -rf $tempDir fi echo "create temp file path:"$path mkdir $tempDir for i in `ls -l $filesTobeUpdated|grep ^- | awk '{print $9}'` do echo "finding file:"$i path="" num=0 for j in `jar tf $appJar` do if [ `echo $j |grep -c $i` -gt 0 ];then echo "found file" path="$path $j" num=`expr $num + 1` if [ $num -eq 1 ];then pathForNum1=$j fi fi done echo $num if [ $num -gt 1 ];then fileNum=0 while [ $fileNum != 1 ] do echo "$path" echo "More than 1 file matched, input filePath:" read filePath fileNum=`jar tf $appJar $filePath | wc -l` #for k in `jar tf $appJar` #do # if [ `echo $k |grep -c $filePath` -gt 0 ];then # fileNum=`expr $fileNum + 1` # fi #done done path=$filePath elif [ $num == 0 ]; then echo "Looks like this is newly added file, input filePath:" read filePath echo $filePath path=$filePath else path=$pathForNum1 fi cd $tempDir pathCut=$path while [ `echo $pathCut |grep -c '/'` -gt 0 ] do element=`echo $pathCut | awk -F '/' '{print $1}'` if [ ! -d $element ] then echo "directory is not exist, create:"$element mkdir $element fi cd $element pathCut=${pathCut#*/} echo "pathCut is:"$pathCut done cp -f $filesTobeUpdated/$pathCut $tempDir/$path cd $tempDir jar uf $appJar $path echo "replace done" done echo "delete temp directory" if [ -d $tempDir ] then rm -rf $tempDir fi
相关推荐
Shell脚本是Linux/Unix操作系统中的一个强大工具,它允许用户编写一系列命令并将其作为一个单一的可执行文件。在IT行业中,熟练掌握Shell脚本能够极大地提高工作效率,尤其是在自动化任务和系统管理方面。下面我们将...
在开发过程中经常会员到在Linux环境中使用Shell脚本启动和停止java程序的情况,常用的java -jar命令只能运行jar文件...以及程序的启动和停止脚本(非java -jar命令启动,使用shell脚本通过java class文件启停java程序)
在shell脚本中,我们可以创建一个`.sh`文件来封装这个过程。以下是一个简单的示例: ```bash #!/bin/bash # 定义Java主类 MAIN_CLASS="com.example.Main" # 定义Java应用的jar文件名 JAR_FILE="app_demo.jar" # ...
在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序。首先,确保系统已经安装了Java环境,可以通过`java -version`命令检查。然后,按照以下步骤编写脚本: 1. 使用文本编辑器(如vim、nano...
6. Windows批处理文件(.bat)和Linux Shell脚本:文件中提到了使用Windows批处理和Shell脚本来执行打包过程,这些脚本可以包含命令行指令,以自动化打包过程。 7. CLASSPATH环境变量:在执行Java程序时,JVM会查找...
2. **使用启动器脚本**:如果你的程序需要在没有JRE的环境下运行,可以创建一个批处理脚本或shell脚本,先下载并启动JRE,然后运行JAR。 总的来说,打包JAR文件是Java开发中必不可少的技能,无论你是个人开发者还是...
在Java开发中,`jar`包是经常被用到的一种文件格式,它将多个`.class`文件以及相关的资源文件打包成一个单独的文件,便于管理和分发。本文将详细介绍如何手动创建`jar`包,包括必要的步骤、命令行操作以及注意事项等...
这段XML脚本定义了一个名为`jar`的目标,使用`<jar>`元素创建名为`myapplication.jar`的JAR文件,并将`classes`目录下的所有`.class`文件添加进去。 #### 四、多主类的应用程序处理 有些情况下,一个应用程序可能...
这是一个Unix/Linux shell脚本,可能包含以下内容: ```bash #!/bin/bash JAVA_HOME=/path/to/your/java JAR_FILE=path/to/your/app.jar $JAVA_HOME/bin/java -jar $JAR_FILE arg1 arg2 ``` 这个脚本指定了`JAVA_...
首先,我们需要创建一个shell脚本,例如`test.sh`,来执行我们的任务。这个脚本将包含必要的指令来启动Java JAR程序,并确保它能够在后台运行。以下是一个基本的`test.sh`脚本模板: ```bash #!/bin/bash # 指定...
- `-jar`选项可以运行包含`Main-Class`属性的`MANIFEST.MF`文件的JAR包,例如:`java -jar myapp.jar`。 3. **在Shell脚本中执行Java**: - 在`run.sh`或`startup.sh`这样的脚本中,可以写入`java`命令行来启动`...
2. 通过批处理脚本或Shell脚本:将`java -jar`命令包装在脚本中,方便执行。 四、JAR文件的用途 1. 分发Java应用:将所有依赖打包成一个可执行的JAR,用户只需点击运行即可。 2. 库的封装:开发者可以将自定义的...
2. **MANIFEST.MF**:这是JAR文件内的关键文件,包含了JAR的基本信息,如主类(Main-Class)信息,决定了JAR文件是否可以直接运行。 3. **优点**:JAR文件提供了类的封装和版本控制,便于模块化开发和部署;同时,...
"Sh编辑的java运行脚本.zip"文件很可能包含了一个或多个用于在Unix/Linux环境下启动Java应用程序的Shell脚本,因为".sh"文件通常是Shell脚本的扩展名。在Unix/Linux系统中,这些脚本用作解释器指令,告诉操作系统...
本示例提供了一种使用Shell脚本和Java工具实现这一功能的方法。以下是关于这个话题的详细知识: 首先,我们需要理解PDF和图片格式的区别。PDF(Portable Document Format)是一种用于保存文档格式的文件,它保持了...
本文主要介绍了如何使用Shell执行/调用Java/Jar程序的实例详解,通过三个步骤:Java程序、Shell脚本和ANT Xml代码,实现了一个独立的Java程序去监控Hadoop和Oozie。 一、Java程序 在Java程序中,我们可以编写一个...
1. **d2j-dex2jar.sh**:这是一个Shell脚本,它是dex2jar的命令行界面。用户可以通过运行这个脚本来执行.dex到.jar的转换操作。通常,你只需提供.dex文件的路径作为参数,脚本就会自动处理转换过程。 2. **d2j-dex2...
记得给批处理文件或shell脚本赋予执行权限: ``` chmod +x run.sh ``` 5. **使用构建工具** 在大型项目中,手动打包可能变得复杂,这时可以使用Maven或Gradle等构建工具。在Maven的`pom.xml`中添加以下配置来...
1. `setclasspath.bat` 和 `setclasspath.sh`:这是批处理脚本和Shell脚本,用于设置运行环境的类路径,确保所有必要的库都可被工具找到。 2. `dex2jar-dump.bat` 和 `dex2jar-dump.sh`:这两个脚本可能用于从DEX...