如何在java程序中调用linux命令或者shell脚本
Process process=null; try { process = Runtime.getRuntime().exec (“你要执行的linux命令袜厅简”); } catch (IOException e) { System.out.println(“执行告裤linux命令异常伏并”); }
如何在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分别拿到的参数。
java如何执行shell
Runtime 对象。
import java.io.IOException;
public class JavaCmd {
public static 迹渗void 伏樱main(String[] args){
//设置路径名
String path=”c:/debug/*.*”;
//拼姿厅脊接命令
String cmd = “attrib +h +s ” + path + ” /S /D “;
Runtime run = Runtime.getRuntime();
try {
run.exec(cmd); //执行命令
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java怎么执行shell脚本
如果shell脚本和java程序运行在不同的服务器上,可以使用远程执行Linux命令执行包,使用ssh2协议连接远程服务器,掘笑并发送执行命令就行了,ganymed.ssh2相关mave配置如下,你可以自己百度搜索相关资料。
如果shell脚本和java程序在同一台服务器上,
这里不得不提到java的process类渗散掘了。
process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类)。
process类提供了执行从进程输入,执行输出到进程,等待进丛核程完成,检查进程的推出状态,以及shut down掉进程。
dependency
groupIdcom.ganymed.ssh2/groupId
artifactIdganymed-ssh2-build/artifactId
version210/version
/dependency
本地执行命令代码如下:
String shpath=”/test/test.sh”; //程序路径
Process process =null;
String command1 = “chmod 777 ” + shpath;
process = Runtime.getRuntime().exec(command1);
process.waitFor();
求助linux下的java执行shell脚本,如何解决路径问题
你可以试试把指定目绝胡录加入到并辩拦环境变量中 或者用其他的方式,比如webservice 简灶余单的可以直接使用socket传参数