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

如何在java程序中调用linux命令或者shell脚本,第1张

在java程序中如何调用linux的命令?如何调用shell脚本呢?

这里不得不提到java的process类了。

process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类)。

process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut down掉进程。

至于详细的process类的介绍放在以后介绍。

另外还要注意一个类:Runtime类,Runtime类是一个与JVM运行时环境有关的类,这个类是Singleton的。

这里用到的RuntimegetRuntime()方法是取得当前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 testsh,下面就是执行testsh命令的方法:

这个var参数就是日期这个201102包的名字。

String shpath="/test/testsh"; //程序路径

Process process =null;

String command1 = “chmod 777 ” + shpath;

process = RuntimegetRuntime()exec(command1);

processwaitFor();

String var="201102"; //参数

String command2 = “/bin/sh ” + shpath + ” ” + var;

RuntimegetRuntime()exec(command2)waitFor();

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

shell脚本里调用JAVA程序

#!/bin/sh

java Testclass ##或者java -jar Testjar

stat=`sqlplus `

if [ $stat = ""]

then

nohup sh single1sh

fi

shell里的命令也是按顺序执行的,java调用没返回的时候是不会继续往下执行的

如果你调用java程序的时候,命令后面带了个 & 符,则这条命令是在后台执行的,shell会继续执行下一条命令

直接 python /xxx/xxpy就行了

比如windows上我的桌面有testpy文件,使用如下命令即可执行 (linux系统也是同样道理,使用全路径即可)

python ‪C:\Users\Joo\Desktop\testpy

各位好我有一个问题,是这样:环境:有一套管理系统(包括联机和批量),该管理系统白天运行联机系统,晚上运行批量系统。目的:联机系统运行到晚上,会停掉,这时候通过在unix下的sh脚本调用并且启动批量系统。sh脚本可以调用java程序,通过java程序就可以启动了批量系统。andilyliao 写道最简单的方法 你可以用java写一个job 然后每天晚上执行shmginobili 写道可以在脚本中 实现一个定时功能啊比如每隔半小时 检查一次当前的时间如果到了晚上 就停止联机系统,运行批量系统当然前提是 这个sh脚本要一直保持运行状态 并且其错误处理机制要完善问题补充:哦。你的意思是不是这样啊,这个sh脚本作为一个定时器,定时调用启动联机系统或者批量系统的程序。通过while(1)这样一个循环,一直运行不中断,然后sleep一定时间,就调用联机的启动程序,再过一定时间,关闭联机启动批量系统。

Shell "C:\Windows\System32\Calcexe"

应该改为:

Shell "C:\\Windows\System32\Calcexe"

VBS里,\\才编译为\

以上就是关于如何在java程序中调用linux命令或者shell脚本全部的内容,包括:如何在java程序中调用linux命令或者shell脚本、shell脚本中调用JAVA 程序,如何让JAVA运行结束后,再执行下面命令(只有java运行完,下面对数据的处理才有用)、shell脚本文件调用某个特定路径下的python程序,带路径应该怎么处理呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10082307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存