在java程序中调用linux命令

weinideai 2011-05-26 02:01:20
在java程序中调用linux命令(可以是系统命令,或者是自己封装的命令),然后等命令执行完以后,能给我一个状态返回(主要是看是否成功执行),以便一下不的操作,请高手指点一下,最后能给一个完整的实例,不甚感谢!
...全文
838 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vicentsun 2012-03-01
  • 打赏
  • 举报
回复
看不到啊!
qybao 2011-05-27
  • 打赏
  • 举报
回复
for example
Process p = Runtime.getRuntime().exec(your_shell);
p.waitFor();
int status = p.exitValue();
火狐狸 2011-05-27
  • 打赏
  • 举报
回复
It is a Java servlet lets you execute commands on your server. So you can use this tool for remote host administration (copy files, do backup, reboot etc.) Servlet supports WAP/WML, so you can do this even from your mobile phone.

How to use it:

a) copy shellPackage.jar into WEB-INF/lib directory

b) describe Shell servlet in your web.xml file:

It is a Java servlet lets you execute commands on your server. So you can use this tool for remote host administration (copy files, do backup, reboot etc.) Servlet supports WAP/WML, so you can do this even from your mobile phone.
xing_6 2011-05-27
  • 打赏
  • 举报
回复
首先要确定如何判断一个命令执行成功的标准, 如果命令是自己写的程序,可以在程序执行完毕后给出程序执行成功或失败的标志, java调用命令后获取输出流,根据输出的内容来判断命令是否成功。 如果命令是linux系统命令,就不太好判断了,在linux shell中执行完系统命令后可以通过检查系统变量 $? 的值来判断命令是否成功,但是通过java调用命令是否会影响该值及是否能获取到该值不确定。
想喝咖啡的貓 2011-05-27
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110526/13/5a79d62f-6fef-4c59-a977-83bf802ef895.html
这是我的一个提问,我的麻烦是linux下执行没问题,windows下不行,估计对你来说没事。
guoqizhou 2011-05-27
  • 打赏
  • 举报
回复
2楼代码能得到执行中输出的信息
9楼的只能返回命令是否已执行
weinideai 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 afer198215 的回复:]
我用的脚本方式,最后一行的echo 0就是返回状态。

Perl code

#!/bin/sh
echo zip -q -r /home/shanl/works/java/test1.zip /home/shanl/works/java >>oper.log
zip -q -r /home/shanl/works/java/test1.zip /home/shanl/works/ja……
[/Quote]
这个我java程序能得到吗?
想喝咖啡的貓 2011-05-26
  • 打赏
  • 举报
回复
我用的脚本方式,最后一行的echo 0就是返回状态。

#!/bin/sh
echo zip -q -r /home/shanl/works/java/test1.zip /home/shanl/works/java >>oper.log
zip -q -r /home/shanl/works/java/test1.zip /home/shanl/works/java >>oper.log

echo mv /home/shanl/works/java/test1.zip /home/shanl/works/java/compress/ >>oper.log
mv /home/shanl/works/java/test1.zip /home/shanl/works/java/compress/ >>oper.log

echo 0
lvhongfen 2011-05-26
  • 打赏
  • 举报
回复
Java可以直接调用Linux命令,形式如下:
Runtime.getRuntime().exec(command)

try
{---------用这些stream来向子进程输入数据或获取子进程的输出.
Process process = Runtime.getRuntime().exec ("ls");

InputStreamReader ir=newInputStreamReader(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());
}

大川101 2011-05-26
  • 打赏
  • 举报
回复
好贴,我也在找,顶起

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧