先看看一段代码片段。
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Test {
class ExeCom extends Thread {
InputStream is;
ExeCom(InputStream is) {
this.is = is;
}
public void run() {
try {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
System.err.println(line);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
public void oper(){
try {
String[] command = new String[] {"sh", "-c", "mv /home/1/*.TXT /home/2/"};
Process process=Runtime.getRuntime().exec(command);
new ExeCom(process.getErrorStream()).start();
process.waitFor();
System.out.println(new File("e:/2/").list().length);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args){
Test t= new Test();
t.oper();
}
}
说明:
1. 1目录下面有随便建立的几个空文件,2目录是空的
。
2.要将1目录下面所有的文件移动到2目录下面,这里就要设置参数,否则会被认为是*.txt。在dos下面就会这么认为,
如果是linux或者unix系统,要加sh。即便是在window下面,执行很多命令,也要加运行环境,否则报ioexception。
3.一定要用缓冲流,否则可能造成死锁。
4.waitFor方法就是:
causes the current thread to wait, if necessary, until the process represented
by this Process
object has terminated. This method returns
immediately if the subprocess has already terminated. If the subprocess has not
yet terminated, the calling thread will be blocked until the subprocess exits
,也就是直到这个命令执行完了,才接着往下执行。
参考资料:http://okone96.itpub.net/post/9033/60404
分享到:
相关推荐
Java程序调用linux命令、脚本,支持程序在服务器上使用linux命令。工具类为:ProcessUtil,支持单个命令和批量命令执行函数,同时在工具类中添加了getFileLineNumByCmd函数支持通过linux命令获取文件行数的样例。
在Java编程中,有时我们需要实现一个功能,即通过代码远程登录Linux服务器并执行特定的Linux命令。这在自动化运维、远程脚本执行等场景中非常常见。本篇将详细讲解如何实现这一目标,并提供相关源码及jar包。 首先...
本文将深入讲解如何在Java程序中调用Linux命令,并通过实例来阐述这一过程。 一、Runtime类 `Runtime`类是每个Java应用程序都有的一个单例对象,它提供了执行外部进程的能力。通过`getRuntime()`方法可以获得`...
java代码执行linux系统命令
Java提供了一种强大的机制来执行操作系统级别的任务,其中包括调用Linux命令。实现这一功能的核心是`Runtime`类中的`exec()`方法。这个方法允许Java应用程序创建一个新的进程来执行指定的命令。以下是对这一知识点的...
java执行linux本地命令的类,并返回字符串。在CentOS 6.3上已经测试正常运行。
sshxcute 就是这样一个框架工具集,它基于 JSCH 构建,允许工程师利用Java 代码通过 SSH 连接远程批量执行 Linux/UNIX 系统上的命令或者脚本,同时加入了判断成功与否,取回输出等多种实用功能。sshxcute 不管是针对...
总结,通过Java执行远程Linux服务器命令主要涉及到SSH协议、JSch库的使用,以及可能的工具类库如Apache Commons Exec。这些技术在日常的系统管理和自动化任务中扮演着重要角色,帮助开发者实现远程操作和管理。
在Java开发中,有时我们需要远程连接到Linux服务器执行shell命令,比如进行系统管理、自动化运维或者数据处理等任务。...SSHXCUTE.jar简化了Java开发中的SSH操作,使得远程执行Linux命令变得更加便捷和安全。
Java中常用的Linux命令 Linux命令是Java开发中不可或缺的一部分,掌握这些命令可以提高开发效率和解决问题的能力。本文总结了常用的Linux命令,涵盖文件管理、进程管理、网络管理、文件传输和其他方面。 文件管理 ...
java调用Linux命令获取输出流,用于解决获取不到输出流的方法
在这个例子中,`test.sh`是我们的shell脚本,包含了要执行的Linux命令。注意,确保Java程序有权限执行shell脚本,并且脚本的路径是正确的。 ### 二、执行keepalived相关命令 如果需要直接执行Linux命令,而不是...
java 执行linux命令源码,java调用shell脚本源码,java web发布war到tomcat,servlet文件上传,ajax文件上传。 java web 上传war包、停止、启动、发布tomcat。 命令修改成自己的目录即可使用。
本项目“java开发的swing客户端,远程执行linux命令”显然旨在利用Swing构建一个桌面应用,该应用的核心功能是远程控制Linux服务器,执行命令。这涉及到Java中的网络编程和Linux系统的交互。具体来说,开发者可能使用...
在本项目中,Java被用来解析和执行Linux命令,展示了其强大的系统交互能力。 2. **Linux命令解释器**:在Linux中,命令解释器(如bash)负责接收用户的输入并执行相应的系统调用。这个简单的Java命令解释器模拟了这...
标题中的“14-Java操作Linux命令分割合并文本文件1”指的是使用Java编程语言来执行Linux命令,以实现对文本文件的分割和合并操作。在处理大文件时,由于内存限制,不能一次性将整个文件读入,因此需要采用分块处理的...
linux 服务 运行java 命令,可通过{start|stop|restart|status},查看运行状态。
以下是一些Java开发中常用的Linux命令,它们对于优化开发流程至关重要。 1. **ls**:列出目录内容。`ls -l` 可以查看详细信息,包括文件权限、所有者、大小和修改时间。 2. **cd**:切换目录。用于在文件系统中...
通过监听特定的队列,当有新消息到达时,程序将被动地接收并解析这些消息,这些消息可能是执行Linux命令的指示。 其次,"expect4j"是一个Java库,它允许程序模拟用户交互,尤其是用于自动化SSH登录。SSH(Secure ...
java连接服务器,并执行Linux服务器上的命令或脚本