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

linux下如何通过java在terminal中执行一个命令

发布网友 发布时间:2022-04-23 13:04

我来回答

2个回答

热心网友 时间:2022-05-14 16:39

展开1全部在java程序中运行linux命令不得不提到java的process类,process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类)。
process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut down掉进程。

另外还要注意一个类: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命令的方法:
说明:
1 shpath:是/test/test.sh 也就是我们要执行的sh脚本的完整路径+脚本名称
2 var 是一个参数,可以有也可以没有,当然这个参数取决于你的sh脚本中是否使用到了这个参数,因为我的脚本中使用到了这个var 参数,在linux下面执行的时候是 sh test.sh a.tar
这个var参数就是a.tar这个tar包的名字。
String command1 = “chmod 777 ” + shpath;
process = Runtime.getRuntime().exec(command1);
process.waitFor();
String var= “a.tar”;
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()这个加上。

热心网友 时间:2022-05-14 17:57

你在命令行下直接执行以下看看是不是ant不在你的$PATH里。
如果有ant命令的话,你用 which ant 看一下ant的路径,比如像/local/bin/ant就可以写
cmd="/local/bin/ant -f xxx.xml compile"
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
流量保险是什么 会计的基本常识是什么 我奶奶这几天总是拉肚子,而且只能躺着一站起来眼睛就发黑,医生说她贫血... win7c盘里找不到users,用户里也没有c:usersadministrator... C盘里没有users文件夹 pvc天然气管能用多久 PVC天然气管的寿命是多久?  请教大神这怎么搞?天然气排烟管怎么弄? ...时不用在手机确认电脑登陆微信如何不用手机确认 急性胰腺炎护理 急性胰腺炎非手术治疗的护理措施 Java,Linux习题,命令怎么写呀 linux命令行输入变成Java程序输入 iphone6s plus显示ic是触摸ic吗 小孩用一般的棉花做被子好?还是用蚕丝被做被子好呢?5个月大的... iphone6s plus显示ic是触摸ic吗? 春节趣事的作文 做蚕丝被是老蚕丝好还是新蚕丝好呢 java程序执行linux命令 如图,屏幕竖条,触摸失灵,是触摸ic问题还是屏幕问题?苹果6 春节的趣事作文100字 柞蚕丝被和桑蚕丝那个好? 如何用java调用linux shell命令 iPhone6plus触摸IC坏了.维修店说.就算了修好了.也用不了几个月.请问大神们.修不修好呢 触控屏原ic是神马意思 怎么在java中执行linux 命令 netstat 电容屏触控IC芯片的问题要怎么解决? java程序里调用linux命令 苹果iPhone6 plus触屏ic是在哪里? 蚕丝被订做好还是买成品好呢、有没有专门订做蚕丝被的店呢 我的手机触摸屏坏了 一切正常,就是点不动,然后我拿去维修她们说是我的手机触摸ic坏了,还坏了四条线 Linux:用Java调用Linux指令,这里的-c是什么意思呢? 腊肠有什么好处 腊肠的禁忌? 腊肠是什么? 香肠和腊肠的区别? 腊肠和香肠区别? 腊肠怎么做? 怎么选腊肠? 腊肠的选购? 如何选腊肠? 腊肠要怎么做才好吃呢? 腊肠都有哪些吃法? 腊肠大概是什么时候开始做? 升级了招行自由人生白金信用卡之后之前的金卡还能使用吗? 招商银行普卡升级金卡有什么好处?有阴谋吗? 招商银行金卡有什么好处 招商银行白金信用卡作用 怎么知道微信道特定朋友给我发消息了? 怎么样查询讨方给我发微信约痕迹 怎么能查到6点钟左右谁发微信给我? 别人通过朋友圈指定发给我的微信我能看出是指定发给我的吗