java如何执行Linux脚本文件

java如何执行Linux脚本文件,第1张

1)在linux下写一个.sh文件

(2)文件内容如下:

复制代码

代码如下:

#!/bin/sh

//bash文件头

APP_HOME=/home/blmcrm/crm/A

//要执行的java文件中bin文件的上一个目录,我的目录是/home/blmcrm/crm/A/bin/blm......(后面不写了),总之就是写bin目录前面的部分,因为jar包在bin目录里面,如果不在bin里面,也如此改一下就行

CLASSPATH=$APP_HOME/bin

//bin目录当然是包含jar包的目录啦

for i in "$APP_HOME"/bin/*.jar

//引进所有的jar包,这里用的循环,当然也可以按照这个格式一个一个 写

do

CLASSPATH="$CLASSPATH":"$i" //环境变量就这格式

done

export

CLASSPATH=.:$CLASSPATH//不写这个可能会说找不到main类

echo

${CLASSPATH}//打印环境变量,可以不写

java -Xms50m -Xmx250m

org.gdh.blm.exec.Syslog_csv

exit(结束) //执行java程序, 其中-Xms50m

-Xmx250m是运行内存什么的设置,后面的是bin目录以后一直到.class的路径,我的是Syslog_csv.class,所以我最后那个是Syslog_csv。

在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参数就是日期这个包的名字。


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

原文地址: http://outofmemory.cn/yw/9031769.html

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

发表评论

登录后才能评论

评论列表(0条)

保存