javashell脚本怎么写

1.在linux下对写好的java程序编写shell脚本要怎么写-----以下是我项目的startup.sh的内容------
-----用shell调用java程序----------
if [ -z ${JAVA_HOME} ]
then
echo "JAVA_HOME not set yet,can't run java program!"
exit -1
fi
CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar
JLIBDIR=./lib
export JLIBDIR
for LL in `ls ${JLIBDIR}/*.jar`
do
CLASSPATH=${CLASSPATH}:${LL}
done
echo ${CLASSPATH}
【javashell脚本怎么写】export CLASSPATH
JAVA_OPTION="-Dfile.encoding=GBK -Xms256m -Xmx256m -XX:MaxPermSize=64m"
RUN_CLASS=com.lxq.batch.Main
${JAVA_HOME}/bin/java ${JAVA_OPTION} -classpath ${CLASSPATH} ${RUN_CLASS}
2.如何在java中执行shell脚本1、最常用的方法:Process p = Runtime.getRuntime().exec(SHELL_FILE_DIR + RUNNING_SHELL_FILE + " "+param1+" "+param2+" "+param3); int runnngStatus = p.waitFor();2、通过ProcessBuilder进行调度,这种方法比较直观,而且参数的设置也比较方便:ProcessBuilder pb = new ProcessBuilder("./" + RUNNING_SHELL_FILE, param1, param2, param3);pb.directory(new File(SHELL_FILE_DIR));int runningStatus = 0;String s = null;try { Process p = pb.start(); try { runningStatus = p.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); }} catch (IOException e) { e.printStackTrace(); }if (runningStatus != 0) {}return;参数说明:RUNNING_SHELL_FILE:要运行的脚本SHELL_FILE_DIR:要运行的脚本所在的目录; 当然你也可以把要运行的脚本写成全路径 。
runningStatus:运行状态,0标识正常 。详细可以看java文档 。
param1, param2, param3:可以在RUNNING_SHELL_FILE脚本中直接通过1,1,2,$3分别拿到的参数 。
3.如何在java中执行shell脚本参考如下方式可以执行shell脚本:
// 用法:Runtime.getRuntime().exec("命令");
String shpath="/test/test.sh"; //程序路径
Process process =null;
String command1 = “chmod 777 ” + shpath;
try {
Runtime.getRuntime().exec(command1 ).waitFor();
} catch (IOException e1) {
e1.printStackTrace();
}catch (InterruptedException e) {
e.printStackTrace();
}
String var="201102"; /参数
String command2 = “/bin/sh ” + shpath + ” ” + var;
Runtime.getRuntime().exec(command2).waitFor();
4.求助,编写shell脚本,脚本内容执行一个java类在Windows下写了个bat,你参考下吧,linux下也差不多 。还要开虚拟机麻烦 。
=======================Test0.java===========放在C:\下
public class Test0 {
public static void main(String[] args) {
System.out.println("输入的两个参数为:");
System.out.println(args[0]);
System.out.println(args[1]);
}
}
===========================test.bat ==============================
@echo off
rem 从控制台接收两个参数,并传递给java main的String[]args数组
echo 开始编译 。
cd c:\
javac Test0.java
echo 编译成功!
set /p arg1=输入第一个参数:
set /p arg2=输入第二个参数:
echo -----------java执行输出----------------
java Test0 %arg1% %arg2%
echo ----------------------------------------
echo 操作完成!
pause
5.java怎么调用shell脚本String cmdstring = "chmod a+x test.sh";
Process proc = Runtime.getRuntime().exec(cmdstring);
proc.waitFor(); //阻塞,直到上述命令执行完
cmdstring = "bash test.sh"; //这里也可以是ksh等
proc = Runtime.getRuntime().exec(cmdstring);
// 注意下面的操作
string ls_1;
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(proc.getInputStream());
while ( (ls_1=bufferedReader.readLine()) != null);
bufferedReader.close();
proc.waitFor();为什么要有上面那段操作呢?