1、java获取shell脚本执行信息
/home/oracle/auto_sh/jdk-linux/bin/java -classpath "/home/oracle/Temp_sh/Test_install.jar:/home/oracle/auto_sh/sqljdbc.jar" com.test.Test 10.9.176.28 /home/oracle/Temp_sh/Test.sh
以上Shell脚本的意思:运行java程序"Test","com.test.Test"后的 IP及shell目录为"Test"类传的两参数。
以下java代码中获取shell脚本执行情况
public int executeSH(String sh)
{
int status = 1;
try {
Process cmd = Runtime.getRuntime().exec(sh);
InputStream in = cmd.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String tmp = null;
while((tmp=br.readLine())!=null)
{
if(tmp.length()>0)
{
System.out.println("== "+this.getCurrentTime()+" "+tmp);
}
if(tmp.equals("ByeBye"))
{
status = 0;
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return status;
}
以下为shell脚本
/******************************************************
#! /bin/bash
echo " ============================================================================="
echo " * * * * * * * * * * * * * * * * * * * "
echo " * * * * * * * * * * * * * "
echo " * * * * * * * * * * * * * * * * * * * * "
echo " * * * * * * * * * * * * * "
echo " * * * * * * * * * * * * * * * * * * * * * * "
echo " ============================================================================="
echo " ============================== AUTO_INSTALL_START============================="
echo
Install_Path="/export/home/oracle/netnumen/TestInstall"
Install_Temp="/export/home/oracle/temp"
Version_IP="$1"
Version_Path="$2"
Pkg_name="$3"
Ftp_uname="$4"
Ftp_passwd="$5"
MainClass="com.test.ums"
function stop_testProc()
{
psid=0
for x in 1 2 3 4 5 7 8 9 10
do
echo $x;
javaps=`$Install_Path/ums/jdk-linux/bin/jps -l |grep $MainClass`
#jps -l 获取java类"MainClass"进程
#if ["$javaps" != '']; then
if [ -n "$javaps" ]; then
psid=`echo $javaps |awk '{print $1}'`
#取得java“MainClass”进程号
echo $psid
#su - oracle -c "kill -9 $psid"
`kill -9 $psid`
if [ $? -eq 0 ]; then
echo "[Deleted OK]"
else
echo "[Deleted Failed]"
fi
else
echo "[Now no need to kill process]"
break
fi
done
}
function silence_setup()
{
#unzip
unzip -o $Install_Temp/$Pkg_name -d $Install_Temp/ >/export/home/oracle/auto_sh/unzip.log
#copy .properties
rm $Install_Temp/Installer/install/bin/test-silence-setup.properties
cp /export/home/oracle/auto_sh/test-silence-setup.properties $Install_Temp/Installer/install/bin/
#install
$Install_Temp/Installer/install/bin/solaris-test-silence-setup.sh >/export/home/oracle/auto_sh/test-silence-setup.log
sleep 5
if grep -qc "succeed" test-silence-setup.log;
#如果在日志中查找到“succeed”
then echo "test-silence setup complete";
else
echo "test-silence setup fail";
exit 1
fi
}
function stautup_testServer()
{
$Install_Path/ums/ums-svr/bin/console-solaris.sh &
for x in 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
do
sleep 20
p=` netstat -na |grep 64021`
if [ -n "$p" ]; then
#如果字符串“$p”不为空
echo "############ Test startup test complete #############"
echo "ByeBye"
sleep 10
echo "############ not send udp msg complete #############"
else
echo "!!!!!!!!!!!!!!! starting !!!!!!!!!!!!!!"
fi
done
suspend
}
echo " -------------- [Del Install pkg] --------------"
chmod -R 755 $Install_Temp/Installer
rm $Install_Temp/$Pkg_name
rm -rf $Install_Temp/Installer
sleep 3
echo " --------- [Del Install pkg complete] ----------"
echo
echo
echo " -------------- [Get Install pkg] --------------"
ftp -v -n $Version_IP 21 <<EOF
user $Ftp_uname $Ftp_passwd
binary
cd $Test_Path
lcd $Install_Temp
prompt
get $Pkg_name $Test_Temp/$Pkg_name
close
bye
EOF
#ftp下载
echo " -------- [Get Install pkg complete] -----------"
echo
echo
echo " -------- [Stop running test] --------"
#kill test porcess
stop_testProc
echo " -------- [Stop running test complete] --------"
echo
echo
echo " -------- [test-silence setup] --------"
#install test porcess
silence_setup
echo " -------- [test-silence setup complete] --------"
echo
echo
echo " -------- [Startup testserver ...] --------"
#start test server
stautup_testServer
echo
echo
sleep 1
echo "Bye
"
/***************************************************************
分享到:
相关推荐
需要注意的是,当我们在Java中调用Shell脚本时,应该妥善处理可能出现的异常情况,例如脚本文件不存在或者无法执行等情况。在上述代码中,异常处理是通过`try-catch`块来实现的,当发生异常时,将会输出错误信息,并...
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。...于是我把oracle的所有环境变量直接复制到shell脚本文件中,在java中调用了一下,然后所有问题迎刃而解! 具体代码参看文件内容
在IT行业中,尤其是在服务器管理和自动化任务执行的场景下,经常需要使用编程语言调用操作系统级别的命令,例如Shell脚本。Java作为一种跨平台的编程语言,提供了多种方式来调用Shell脚本,实现与操作系统的交互。...
在IT领域,Shell脚本和...总结来说,Shell脚本调用Java类是系统集成和自动化的重要手段。理解如何在Shell环境中正确运行Java程序,以及如何在Shell脚本中控制Java程序的执行,是提高工作效率和系统灵活性的关键技能。
在Android系统中,由于安全性和权限的限制,直接调用shell脚本并不像在Linux或Unix环境下那样简单。然而,对于非root用户来说,确实有一些方法可以实现对shell脚本的调用,尤其是在开发和调试过程中。下面我们将深入...
在Java程序中调用Unix/Linux主机上的Shell命令,并返回相应执行结果。
在 Java 中调用 Shell 命令是非常常见的操作,特别是在需要执行系统命令或脚本时。在这个例子中,我们将看到如何使用 Java 调用 Shell 命令,并介绍相关的知识点。 Java 调用 Shell 命令的必要性 在实际开发中,...
本文将详细介绍如何在Java中调用Shell脚本,并给出一个完整的示例。 #### 二、Shell脚本简介 Shell脚本是用于Unix/Linux系统的一系列命令的集合,这些命令通常用于自动化任务处理。Shell脚本可以由任何文本编辑器...
在Unity开发过程中,有时我们需要与操作系统进行交互,例如执行shell脚本来处理一些特定的任务。但在实际操作中,可能会遇到Unity无法正确调用shell脚本并传递参数的问题。本文将详细介绍如何解决这一问题,并提供一...
Java 远程调用Shell脚本客户端包是一个实用的工具,专为开发者设计,使得在Java应用程序中执行远程Shell命令变得简单而高效。这个包的主要功能是通过Java代码发起对远程服务器上的Shell脚本的调用,从而实现跨平台的...
本文将详细介绍如何在Java中完美封装shell脚本的调用方法,并提供相关的测试示例。 1. **Java与Shell脚本的桥梁:Runtime类和ProcessBuilder类** Java提供了两种主要的方式来调用外部程序,包括Shell脚本:`...
Java程序调用并执行shell脚本及问题总结 Java程序调用并执行shell脚本是Java开发中非常重要的一部分,特别是在文本处理过程中。Java开发的特点是可以很早地进行TDDL,METAQ等等的对接,而脚本开发的特点是可以在...
将Java与Shell脚本结合使用,可以在Java应用程序中执行系统级操作或者调用复杂的命令行流程。下面我们将详细探讨如何在Java中调用shell脚本以及涉及到的相关知识点。 首先,Java调用shell脚本主要通过`Runtime`类或...
linux中java项目需要重启一般使用先找到进程杀掉进程,然后找到项目启动,整个过程不算复杂,但是每次都操作一遍太麻烦,我这里把这个过程整理成shell脚本,大家可以修改里面项目名称,每次直接执行这个命令重启项目...
在特定的应用场景中,比如完成外币资金的调度工作后,可能需要通过Java程序来生成一个文本文件,并进一步利用Shell脚本来实现文件传输等操作。这涉及到Java与操作系统层面的交互,其中关键的技术点包括:如何使用`...
在Java中,我们可以使用Runtime或者ProcessBuilder类来执行外部命令,例如Shell脚本。以下是一个简单的示例: ```java public class CommandExe { public static void main(String[] args) { String command = ...
这篇博客“Shell执行/调用Java/Jar程序例子”探讨了如何使用Shell脚本来启动和控制Java应用程序,特别是JAR文件。这里我们将深入讲解相关知识点。 1. **Shell脚本基础** Shell脚本是Linux或Unix操作系统中的命令行...
在Java编程中,有时我们需要与操作系统进行交互...总的来说,通过`Runtime`类,我们可以方便地在Java程序中执行Linux命令和shell脚本,实现客户端的多次调用。但同时需要注意异常处理和资源管理,以保证程序的健壮性。