`
tianshui0
  • 浏览: 88263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 调用cmd/sh文件

    博客分类:
  • Java
阅读更多

最近在做产品遇到java在windows下面调用bat脚本和在linux下调用shell脚本,现在记录一下以便以后查阅。

首先贴出RuntimeUtils工具类,此类简化了 Runtime中exec的调用

package com.zohan.www.util;

import java.io.File;
import java.io.IOException;

import org.apache.commons.lang3.StringUtils;

/**
 * @ClassName: RuntimeUtils
 * @Description: runtime工具类 简化了执行命令行
 * @author zohan inlw@sina.com
 * @date 2012-10-30 下午8:42:09
 * 
 */
public class RuntimeUtils {
	
	/**
	 * 
	* @Title: exec
	* @Description: 简化执行命令行
	* @param  command 命令行
	* @param  envp 环境变量
	* @param  dir  路径
	* @return Process    返回类型
	* @throws IOException  
	 */
	public static Process exec(String command, String envp, String dir)
			throws IOException {
		String regex = "\\s+";
		String args[] = null;
		String envps[] = null;
		if (!StringUtils.isEmpty(command)) {
			args = command.split(regex);
		}

		if (!StringUtils.isEmpty(envp)) {
			envps = envp.split(regex);
		}

		return Runtime.getRuntime().exec(args, envps, new File(dir));

	}

}

 下面是开启tomcat和关闭tomcat的测试类TestRuntimeUtils

package com.zohan.ww.system;



import org.junit.Test;

import com.zohan.www.util.RuntimeUtils;

/**
 * @ClassName: TestRuntimeUtils
 * @Description: RuntimeUtils测试
 * @author zohan inlw@sina.com
 * @date 2012-10-30 下午9:02:48
 * 
 */
public class TestRuntimeUtils {

	/**
	 * 
	 * @Title: testStartTomcat
	 * @Description: windows 下启动tomcat
	 * @throws Exception
	 * @return void 返回类型
	 * @throws
	 */
	@Test
	public void testStartTomcat() throws Exception {
		String command = "cmd.exe /c  startup.bat";
		String dir = "D:\\ehcache\\apache-tomcat-6.0.35\\bin";
		Process process = RuntimeUtils.exec(command, null, dir);
		int i = process.waitFor();
		System.exit(i);
	}

	/**
	 * 
	 * @Title: testStopTomcat
	 * @Description: windows 下关闭tomcat
	 * @throws Exception
	 *             设定文件
	 * @return void 返回类型
	 * @throws
	 */
	@Test
	public void testStopTomcat() throws Exception {
			
		String command = "cmd.exe /c start  shutdown.bat";
		String dir = "D:\\ehcache\\apache-tomcat-6.0.35\\bin";
		Process process = RuntimeUtils.exec(command, null, dir);
		int i = process.waitFor();
		System.exit(i);
	}
	
	/**
	 * 
	* @Title: testStartWas
	* @Description: linux 下 启动was服务
	* @throws Exception    设定文件
	* @return void    返回类型
	* @throws
	 */
	@Test
	public void testStartWas() throws Exception{
		
		String command = "sh startServer.sh server1";
		String dir = "/usr/IBM/WebSphere/AppServer/profiles/AppSrv01/bin";
		Process process = RuntimeUtils.exec(command, null, dir);
		int i = process.waitFor();
		System.exit(i);
		
	}
	
	/**
	 * 
	* @Title: testStopWas
	* @Description: linux 下停止was服务
	* @throws Exception    设定文件
	* @return void    返回类型
	* @throws
	 */
	@Test
	public void testStopWas()throws Exception{
		String command = "sh stopServer.sh server1 -username admin password";
		String dir = "/usr/IBM/WebSphere/AppServer/profiles/AppSrv01/bin";
		Process process = RuntimeUtils.exec(command, null, dir);
		int i = process.waitFor();
		System.exit(i);
	}
	
	
	

}
 

 注意事项:在此过程中环境为null,会继承当前线程的环境变量。

 

 

分享到:
评论

相关推荐

    java调用bat批处理与sh脚本

    这篇博客“java调用bat批处理与sh脚本”将详细讲解如何在Java程序中实现这一功能。 首先,我们要理解Java是如何与操作系统进行交互的。Java提供了`Runtime`类和`ProcessBuilder`类,这两个类都可以用来执行外部命令...

    Java 调用 Shell 命令

    这涉及到Java与操作系统层面的交互,其中关键的技术点包括:如何使用`OutputStreamWriter`来生成文本文件,以及如何通过Java调用Shell脚本来完成后续的文件处理任务。 #### 二、Java生成文本文件 为了生成文本文件...

    android系统中调用shell脚本

    9. **处理脚本权限**:确保脚本文件有适当的执行权限(如`chmod +x myscript.sh`),否则在Android设备上可能无法执行。 10. **异常处理**:在调用shell脚本时,要处理可能出现的IOException、InterruptedException...

    java调用shell脚本执行sqlldr与存储过程

    2、用sh直接执行shell和在java直接执行shell是有区别的,要在shell文件内增加oracle的环境变量即. /home/oracle/.bash_profile 这句话,否则在执行sqlldr会报如下异常: Message 2100 not found; No message file ...

    java调用shell

    Java调用Shell脚本主要依赖于`java.lang.Runtime`类中的`exec()`方法。此方法允许Java程序启动新的进程,并可传递参数给这个新进程,其中包括Shell命令。当Java程序调用`exec()`时,操作系统会创建一个子进程来执行...

    java调用命令行启动tomcat

    ### Java调用命令行启动Tomcat #### 一、引言 在开发环境中,我们经常需要启动Tomcat服务器来运行Java Web应用。通常情况下,我们会通过双击`startup.bat`或`catalina.sh`脚本来启动Tomcat。然而,在某些特定场景...

    解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

    3. **创建批处理文件**:如果Java代码在不同操作系统之间运行,可以创建一个批处理文件(`.bat` for Windows, `.sh` for Linux),然后在Java中调用这个批处理文件,从而简化命令行参数的处理。 4. **使用ffmpeg的...

    LINUX C调用JAVA的静态方法和非静态方法(实例方法)小实例

    - `Java源码文件`(如`JavaClass.java`):定义了被C语言调用的Java类和方法。 - 可能还有`Makefile`:用于自动化编译过程。 要理解这个例子,你需要熟悉JNI的API,包括`JNIEnv`指针的使用,以及如何处理Java和C...

    Java远程调用Shell脚本并获取输出信息【推荐】

    通过第二步认证成功后当前目录就位于/home/username/目录之下,可以指定脚本文件所在的绝对路径,或者通过cd导航到脚本文件所在的目录,然后传递执行脚本所需要的参数,完成脚本调用执行。 如果需要执行多个Linux...

    输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程

    线程堆栈信息可以让我们深入观察到线程的运行状况,包括线程的当前状态、调用堆栈、锁信息等。为了获取这些信息,我们可以使用jstack工具,它是Java开发工具包(JDK)的一部分,能够输出Java进程的线程堆栈跟踪信息...

    java在win下启动bat和在linux下启动shell脚本

    在Windows中,批处理文件通常以`.bat`或`.cmd`为扩展名,而Linux和Unix系统中,shell脚本通常以`.sh`结尾。这个工具类可能使用了Java的`Runtime`或者`ProcessBuilder`类来执行外部命令。 `Runtime.getRuntime()....

    Java调用Shell命令的方法

    例如,我们可以创建一个名为`sendKondorFile.sh`的Shell脚本,然后在Java中调用它: ```java String shellCommand = "sh " + sendKondorShellName; executeShell(shellCommand); ``` 这样,Java程序就可以利用...

    JAVA读取环境变量

    ### JAVA读取环境变量 #### 知识点概述 在Java程序中,有时我们需要根据不同的运行环境(如Windows或Linux)来获取系统环境变量。这些环境变量包含了操作系统配置的重要信息,比如路径设置、用户信息等。本文将...

    Java调用shell脚本解决传参和权限问题的方法

    Java调用shell脚本解决传参和权限问题的方法是指在Java程序中调用shell脚本来执行某些操作,例如执行系统命令、文件操作等。在调用shell脚本时,可能会遇到传参问题和权限问题,本文将详细介绍如何解决这两个问题。 ...

    编程语言java批处理.pdf

    除了执行命令,文档中还提到了Java程序中对DOS命令的调用,例如使用`convert`命令进行文件格式转换、使用`cmd`命令来启动文件、使用`start`命令打开文档等: ```java Process process = Runtime.getRuntime().exec...

    Unix网络相关命令 ftp 及打包压缩

    ### Unix网络相关命令:...通过上述步骤,我们不仅了解了FTP的基本命令和使用方法,还学习了如何在Unix/Linux系统中进行文件的打包压缩以及如何配置Java开发环境。这对于日常的系统管理和软件开发都是非常有用的技能。

    Java 执行本地脚本携带多参数

    另外,对于更复杂的脚本调用,如在Windows环境下执行批处理文件 `.bat` 或 `.cmd`,你需要使用相应的命令解释器,如 `cmd.exe /c` 对于批处理文件。 至于标签中的"工具",Java社区有许多第三方库可以帮助简化这个...

    cmd命令行中英互译

    cmd命令行中英互译,java编写的一个类,调用谷歌翻译的url。 功能比较简洁,但是有效。 配置环境变量可在任意目录下使用该命令。 C:\Users\**>fy deploy C:\Users\**>java -cp D:\ProgramFiles\diyTools Test deploy...

    Java零基础 - DOS命令del.md

    执行这段代码时,会调用DOS命令`del`来删除指定路径下的文件。 4. **检查结果**:最后一步是验证文件是否被成功删除。可以在指定的路径下手动检查文件是否存在,或者通过其他编程手段(如使用Java的`File`类的方法...

Global site tag (gtag.js) - Google Analytics