当前位置:首页 » 编程软件 » java调用shell脚本参数

java调用shell脚本参数

发布时间: 2025-01-10 14:43:51

linux环境下java调用.sh文件带参数

试试另一种方法
String[] cmd = {"/home/xiang/start.sh", "参数1", "参数2"};
Runtime.getRuntime().exec(cmd);

② shell脚本中调用JAVA 程序,如何让JAVA运行结束后,再执行下面命令(只有java运行完,下面对数据的处理才有用)

调用java的时候不要挂在后台执行就可以了, 如果说你的java程序名叫 Test.class 或者 Test.jar

shell脚本里调用JAVA程序
#!/bin/sh
java Test.class ##或者java -jar Test.jar
stat=`sqlplus .......`
if [ $stat = "**"]
then
nohup sh single1.sh
fi

shell里的命令也是按顺序执行的,java调用没返回的时候是不会继续往下执行的
如果你调用java程序的时候,命令后面带了个 & 符,则这条命令是在后台执行的,shell会继续执行下一条命令

③ 如何在java程序中调用linux命令或者shell脚本

这里不得不提到java的process类了。
process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类)。
process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut down掉进程。
至于详细的process类的介绍放在以后介绍。
另外还要注意一个类:Runtime类,Runtime类是一个与JVM运行时环境有关的类,这个类是Singleton的。
这里用到的Runtime.getRuntime()方法是取得当前JVM的运行环境,也是java中唯一可以得到运行环境的方法。(另外,Runtime的大部分方法都是实例方法,也就是说每次运行调用的时候都需要调用到getRuntime方法)
下面说说Runtime的exec()方法,这里要注意的有一点,就是public Process exec(String [] cmdArray, String [] envp);这个方法中cmdArray是一个执行的命令和参数的字符串数组,数组的第一个元素是要执行的命令往后依次都是命令的参数,envp感觉应该和C中的execve中的环境变量是一样的,envp中使用的是name=value的方式。
下面说一下,如何使用process来调用shell脚本
例如,我需要在linux下实行linux命令:sh test.sh,下面就是执行test.sh命令的方法:
这个var参数就是日期这个201102包的名字。
String shpath="/test/test.sh"; //程序路径
Process process =null;
String command1 = “chmod 777 ” + shpath;
process = Runtime.getRuntime().exec(command1);
process.waitFor();
String var="201102"; //参数
String command2 = “/bin/sh ” + shpath + ” ” + var;
Runtime.getRuntime().exec(command2).waitFor();
注意:
1
我为什么要使用 chmod 777命令呢?在有的机器上面,可能没有设置权限问题。这是你在linux下面执行shell脚本需要注意的问题。没有的话,就需要添加权限,就用chmod 777,否则在执行到Runtime.getRuntime().exec的时侯会出现Permission denied错误。
2
waitFor()这个也是必不可缺的,如果你需要执行多行命令的话,把waitFor()这个加上。

④ java怎么调用shell脚本

//用法:Runtime.getRuntime().exec("命令");Stringshpath="/test/test.sh";//程序路径Processprocess=null;Stringcommand1=“chmod777”+shpath;try{Runtime.getRuntime().exec(command1).waitFor();}catch(IOExceptione1){e1.printStackTrace();}catch(InterruptedExceptione){e.printStackTrace();}Stringvar="201102";/参数Stringcommand2=“/bin/sh”+shpath+””+var;Runtime.getRuntime().exec(command2).waitFor();

热点内容
linux安装sqlite 发布:2025-01-10 19:09:43 浏览:80
java工程师证 发布:2025-01-10 18:54:02 浏览:34
python如何判断密码强度 发布:2025-01-10 18:39:58 浏览:982
安卓怎么快捷关程序 发布:2025-01-10 18:35:48 浏览:924
仔细的算法 发布:2025-01-10 18:28:30 浏览:548
c语言判断是否为回文数 发布:2025-01-10 18:21:31 浏览:786
win7vhd加密 发布:2025-01-10 18:20:35 浏览:423
手机存储空间里的其他怎么清理 发布:2025-01-10 18:19:59 浏览:803
二手的电脑服务器都怎么处理了 发布:2025-01-10 18:19:05 浏览:909
定压补水装置如何配置 发布:2025-01-10 18:12:34 浏览:433