问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java如何连接linux系统后台执行相应的命令

发布网友 发布时间:2022-04-23 08:59

我来回答

2个回答

热心网友 时间:2022-06-18 18:22

java提供的Runtime 这个类来执行系统命令的,用法如下:

1.得到Runtime对象。
public void execCommand(String command) throws IOException {
// start the ls command running
//String[] args = new String[]{"sh", "-c", command};
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(command); //这句话就是shell与高级语言间的调用
//如果有参数的话可以用另外一个被重载的exec方法
//实际上这样执行时启动了一个子进程,它没有父进程的控制台
//也就看不到输出,所以需要用输出流来得到shell执行后的输出

2.得到输入流。
InputStream inputstream = proc.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
// read the ls output
String line = "";
StringBuilder sb = new StringBuilder(line);
while ((line = bufferedreader.readLine()) != null) {
//System.out.println(line);
sb.append(line);
sb.append('\n');
}
//tv.setText(sb.toString());
//使用exec执行不会等执行成功以后才返回,它会立即返回
//所以在某些情况下是很要命的(比如复制文件的时候)
//使用wairFor()可以等待命令执行完成以后才返回
try {
if (proc.waitFor() != 0) {
System.err.println("exit value = " + proc.exitValue());
}
}
catch (InterruptedException e) {
System.err.println(e);
}
}
}

热心网友 时间:2022-06-18 18:23

执行linux命令基,基本思路是从控制台获得输入的指令,启动命令行执行命令,捕捉异常,示例如下:
public class TestRunTime {

public static void main(String[] args) throws IOException, InterruptedException {
String cmd = "";

if(args == null || args.length == 0){
System.out.println("请输入命令行参数");
}else{

for(int i=0;i<args.length; i++){//获得输入的命令
cmd += args[i] + " ";
}
}

try {
Process process = Runtime.getRuntime().exec(cmd);//执行命令

InputStreamReader ir = new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader(ir);

String line;
while ((line = input.readLine()) != null) {//输出结果
System.out.println(line);
}
} catch (java.io.IOException e) {
System.err.println("IOException " + e.getMessage());//捕捉异常
}
}
}追问传入cd /;touch data.txt 之后,执行报错为cannot run progarm "cd";creatprocess error=2

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 裤子起丝怎么清理干净,教你几个小妙招? 怎么用后置摄像头人脸识别? Linux 有哪些命令连接符 oppoa55后置摄像头怎么使用 怎么画汽车(卡通版) 手机怎么后镜头优先 给女朋友结婚的保证书怎么写 简笔汽车怎么画 小米11Ultra发布,哪些黑科技让你眼前一亮? 小米11ultra和苹果xr耐用能多少年? 恢复回收站删除文件工具 免费版 十86的手机号格式 小米11ultra和3哪个拍照画质好? 请问大佬有恢复回收站删除文件工具 V9.0 免费版软件免费百度云资源吗 超市应该如何吸引和稳定顾客? 21.995十1.447在手机计算器怎么加? 小米11Ultra真的那么好吗? 如何写好综述文章? 如何挖掘有效客户及稳定大客户/ 手机界面出现十点击添加世界时问怎么取消 iphone4后置摄像头如何打开? 如何将胡萝卜切丝? Linux如何从一台机器连接到另一台机器后,并执行Linux指令呢? OPPOa9电池多少毫安? 裤子起静电,怎样消除?! 裤子起褶怎么办? 直播加加怎样使用后置摄像头 求 一份新婚 新娘对新郎的保证书 华为mate20有上市吗? 女方结婚给男方承诺书怎么写 裤子起静电怎么办 弱弱的问一句怎么使用后置摄像头? 结婚新郎保证书怎么写 公务员面试应该买什么书呢? 裤子起静电,是什么原因?怎么才能解决? 胡萝卜如何切丝 vivonex3如何使用后置摄像头? 有关于公务员面试的书推荐吗? 华为Mate 20手机内存有256G的嘛? 公务员面试教材哪本书好?