ShellCmdLog.class中的代码:
public class ShellCmdLog extends Thread
{
private boolean bLog2Error; //是否打印错误Error标志
private InputStream ins; //待转换文件输入流
/**
* 设置是否打印错误Error,设置待转换文件的输入流
* @param is 待转换文件输入流
* @param flag 是否打印错误Error标志
*/
public ShellCmdLog(InputStream is, boolean flag)
{
super("ShellCmdStream" + (flag ? "-error" : "-out"));
bLog2Error = flag;
ins = is;
}
/**
* 执行转换线程
*/
public void run()
{
if (ins != null)
{
InputStreamReader isr = new InputStreamReader(ins);
BufferedReader br = new BufferedReader(isr);
try
{
String line = null;
while ((line = br.readLine()) != null)
{
if (bLog2Error)
{
System.out.println("Shell_Err>" + line);
}
else
{
System.out.println("Shell_Out>" + line);
}
} //end of while(true)
}
catch (IOException ioe)
{
System.out.println("ShellCmdLog error:" + ioe);
}
finally
{
try
{
if (isr != null)
{
isr.close();
}
} catch (IOException e)
{
e.printStackTrace();
}
try
{
if (br != null)
{
br.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
// java调用shell脚本
String path="/zte/ippbxweb/util/zxecs_dbbackup.sh" ;//脚本位于服务器中的路径
String statement[] ={ "/bin/sh", path};
try {
Process process = Runtime.getRuntime().exec(statement);
InputStream in = process.getInputStream(); // 获取输入流
InputStream err = process.getErrorStream();// 获取错误流
ShellCmdLog sgStdout = new ShellCmdLog(in, false);
ShellCmdLog sgStderr = new ShellCmdLog(err, true);
sgStdout.start();
sgStderr.start();
final int result = process.waitFor();
// 为流读出捕获流设定的时间间隔。
Thread.sleep(100);
if (process != null) {
process.destroy();
}
// 集合读取线程
sgStdout.join();
sgStderr.join();
} catch (Exception e) {
e.toString();
}
分享到:
相关推荐
在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to ...
在Android系统中,由于安全性和权限的限制,直接调用shell脚本并不像在Linux或Unix环境下那样简单。然而,对于非root用户来说,确实有一些方法可以实现对shell脚本的调用,尤其是在开发和调试过程中。下面我们将深入...
2. **调用Shell脚本**:通过Java的`Runtime.getRuntime().exec()`方法来执行Shell命令或脚本。 下面是一个具体的Java类实现示例,用于调用Shell脚本并记录执行日志: ```java import java.io.*; import java.text....
给定的部分内容展示了一个简单的VBS脚本示例,该脚本用于执行CMD命令并将其结果导出到文本文件中: ```vbscript Shell("cmd.exe /c dir g:\ > g:\1.txt") ``` 这段代码的含义是: - 执行`cmd.exe /c dir g:\`命令...
下面是一个简单的示例,展示了如何使用`subprocess.check_output()`函数执行CMD命令并获取返回结果: ```python import subprocess # 执行CMD命令 result = subprocess.check_output("dir", shell=True) ...
Java执行CMD命令及MongoDB脚本是开发过程中常见的任务,特别是在集成系统或者自动化运维场景下。下面将详细讲解这两个主题。 一、Java执行CMD命令 在Java中,我们可以使用Runtime类或ProcessBuilder类来执行操作...
Java远程调用Shell脚本并获取输出信息 本文主要介绍了Java远程调用Shell脚本并获取输出信息的方法。该方法通过使用Java的SSH客户端来连接远程Linux服务器,执行Shell脚本,并获取输出信息。 一、添加依赖 要使用...
Java调用shell脚本解决传参和权限问题的方法 Java调用shell脚本解决传参...Java调用shell脚本解决传参和权限问题的方法可以通过将shell命令或脚本和参数放入一个数组中,并在执行脚本之前赋予脚本执行权限来解决问题。
### C#执行CMD命令并获取返回信息的知识点详解 在.NET框架中,使用C#语言来执行CMD命令并获取其返回的信息是一项常见的需求。这项技术主要用于自动化任务处理、系统管理和软件开发过程中的测试等场景。下面我们将从...
在IT领域,有时候我们需要在Java或JavaScript代码中执行操作系统级别的命令,例如运行系统脚本、管理文件、控制进程等。这种需求通常通过调用命令行(CMD)来实现。本文将详细探讨如何在Java和JavaScript中调用...
在进行系统自动化运维或脚本编程时,经常需要从Python脚本中调用Shell命令来执行特定任务,如文件管理、网络操作等。本文将详细介绍如何使用Python来调用Shell命令,并重点介绍`os.popen()`与`os.system()`两种方法...
在IT领域,特别是软件开发与运维(DevOps)过程中,Java程序调用Shell脚本是一种常见的需求,用于执行系统级任务、数据处理或自动化流程。本文将深入探讨如何使用Java来调用Shell脚本,包括基本原理、代码实现、常见...
这个主题,"python调用shell脚本",是Python开发者在进行系统运维或服务器管理时经常遇到的情景。下面我们将深入探讨如何在Python中调用shell脚本,以及相关的知识点。 首先,Python内置的`os`模块提供了一个`...
在Windows中,批处理文件通常以`.bat`或`.cmd`为扩展名,而Linux和Unix系统中,shell脚本通常以`.sh`结尾。这个工具类可能使用了Java的`Runtime`或者`ProcessBuilder`类来执行外部命令。 `Runtime.getRuntime()....
调用Shell脚本时,我们可以这样写: ```java ProcessBuilder pb = new ProcessBuilder("/bin/sh", "myscript.sh"); pb.directory(new File("/path/to/your/script/directory")); // 设置脚本所在目录 Process ...
首先,Java中可以通过`Runtime`或`ProcessBuilder`类来执行外部命令,包括运行Windows批处理脚本(.bat)和VBS脚本(.vbs)。`Runtime.exec()`方法允许我们在Java程序中执行操作系统级别的命令,而`ProcessBuilder`...
`Form1.frm`和`.frx`是VB窗体的定义和资源文件,可能包含一个界面用于输入CMD命令并显示返回结果。`MSSCCPRJ.SCC`是版本控制的配置文件,`DOS命令行.vbp`和`.vbw`则是VB项目和工作空间文件。 总的来说,VB操作CMD...
Java调用DOS命令是指在Java程序中执行操作系统级别的命令,比如Windows下的CMD命令或Linux下的Shell命令。这种功能在很多场景下都很有用,比如自动化脚本、文件操作、系统管理等。Java提供了Runtime类和...
- 在Java中,你可以使用`Runtime.getRuntime().exec()`或`ProcessBuilder`来执行shell命令。例如,创建一个SQL脚本文件(如`script.sql`),然后通过以下代码调用SQL*Plus执行该脚本: ```java String command =...
# 调用Shell脚本 subprocess.call(["bash", "run_commands.sh"]) ``` - **解析**:这种方式更加灵活,尤其是在需要执行复杂的Shell逻辑时更为合适。通过使用`bash`命令来执行脚本,避免了直接使用`shell=True`所...