`

windows下通过Runtime.getRuntime().exec.()执行linuxshell脚本

阅读更多

执行Runtime.getRuntime().exec("ps -ef|grep indexer");

一直抛ERROR: Unsupported SysV option.

 

于是便去就按照这个error信息去百度、google找答案,未果。。。

 

看到网上相关问题解决方法(如下),我尝试Runtime.getRuntime().exec("eval ps -ef|grep indexer");

再次失败。。。抓狂中。。。

 

CMND="ps -ef"

$CMND

是可以正常执行地。

 

CMND="ps -ef|grep sshd"

$CMND

就会得到上面的错误了。

因为 "ps -ef|grep sshd" 不会被再次解析,管道符失效。

 

eval $CMND

这样就可以再解析一次。

PS:注意单引号,双引号,转义。

 

后经高人指点,恍然大悟。。。

linux下:

 

String[] command = { "/bin/sh", "-c", cmmd };

Process ps = Runtime.getRuntime().exec(command );

windows下:

 

String[] command = { "cmd", "/c", cmmd };

Process ps = Runtime.getRuntime().exec(command );

 

总结:没有抓住问题的关键,除了通过ERROR去找解决方法外,还可以通过问题本身或参考相关问题的解决方法。

相关文章:

1.http://bzhang.iteye.com/blog/407846

2.http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1

分享到:
评论
1 楼 diwi 2012-08-02  
mysqldump --opt database | mysql --host=remote-host -C database
这条语句在Linux/Windows下都能执行,但Runtime.getRuntime().exec("...")时,Windows下执行不了,提示“mysqldump: Couldn't find table: "|"”,求解释。

相关推荐

    使用runtime实现linux命令行或shell脚本多次调用

    在Java编程中,有时我们需要与操作系统进行交互...总的来说,通过`Runtime`类,我们可以方便地在Java程序中执行Linux命令和shell脚本,实现客户端的多次调用。但同时需要注意异常处理和资源管理,以保证程序的健壮性。

    java执行可执行文件,Runtime.exec、ProcessBuilder、commons-exec

    在Java编程中,经常需要执行一些外部的可执行文件或者脚本(如bat或shell脚本)。本文将详细介绍三种常用的方法:`Runtime.exec()`、`ProcessBuilder`以及`commons-exec`库。 #### 1. 使用`Runtime.exec()` `...

    linux下shell脚本实现数据的导出

    在Linux环境下,shell脚本是自动化任务的强大工具,尤其对于数据导出这样的操作,通过编写shell脚本可以方便地实现定期备份或者按需导出。本文将深入讲解如何使用shell脚本来实现数据的导出,并结合Java代码进行调用...

    Java调用linux shell脚本的方法

    在Java编程中,有时我们需要与操作系统进行交互,例如在Linux环境下执行shell脚本来完成特定的任务。本文将详细探讨如何在Java程序中调用Linux shell脚本,并解释相关的关键概念和步骤。 首先,调用shell脚本的基本...

    android系统中调用shell脚本

    在Android系统中,由于安全性和权限的限制,直接调用shell脚本并不像在Linux或Unix环境下那样简单。然而,对于非root用户来说,确实有一些方法可以实现对shell脚本的调用,尤其是在开发和调试过程中。下面我们将深入...

    Java调用Shell命令的方法

    首先,Java通过`Runtime.getRuntime().exec()`方法来执行外部命令,包括Shell命令。这个方法接受一个字符串数组作为参数,其中第一个元素是Shell解释器的路径(通常是`/bin/sh`),第二个元素是`-c`,表示接下来的...

    java_dos_shell_bat

    接下来,关于Java执行Shell脚本,你可以使用`Runtime.exec()`或`ProcessBuilder`,但是你需要确保你的脚本文件是可执行的,并且指定正确的路径。例如,执行一个名为`myscript.sh`的Shell脚本: ```java String ...

    java调用shell(包含有参数的调用)

    在某些情况下,Java程序需要调用Shell脚本执行特定的操作,比如访问Linux系统命令或者自动化执行一些任务。本文将详细解释Java如何调用Shell脚本,包括如何编写Shell脚本和在Java中如何传递参数。 首先,Shell脚本...

    java代码中调用linux/unix命令

    `Runtime.getRuntime().exec(String command)`或`Runtime.getRuntime().exec(String[] cmdArray)`可以执行单个命令。例如,执行`ls`命令可以写成: ```java Process process = Runtime.getRuntime().exec("ls"); ...

    java调用Shell脚本.doc

    Shell脚本是用于Unix/Linux系统的一系列命令的集合,这些命令通常用于自动化任务处理。Shell脚本可以由任何文本编辑器编写,并且必须具有执行权限才能被系统识别并执行。 #### 三、使Shell脚本具备执行权限 为了...

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

    在Windows和Linux环境中,启动批处理脚本(bat)和shell脚本(sh)是常见的任务,特别是在自动化和脚本执行过程中。`RunScript.java`和`StreamGobbler.java`这两个文件可能就是用来实现这个功能的。 `RunScript....

    java调用shell脚本

    这个简单的例子会在当前目录下执行`ls -l`命令,获取并打印出目录中的文件列表。 此外,压缩包中还有两个库的源码版本——ganymed-ssh2-build210.zip和jsch-0.1.53.zip,以及expect4j的源码仓库——expect4j-master...

    java调用shell命令并获取执行结果的示例

    在这个示例中,我们使用 Runtime.getRuntime().exec() 方法来执行 Shell 脚本,并使用 waitFor() 方法来判断脚本是否正常执行。如果脚本执行失败,我们将记录错误信息。 结论 Java 调用 Shell 命令并获取执行结果...

    java执行shell指令

    例如,如果我们想在Linux环境下执行`ls`命令,可以这样做: ```java try { Process process = Runtime.getRuntime().exec("ls"); BufferedReader reader = new BufferedReader(new InputStreamReader(process....

    java 操作脚本启动服务

    在Linux上,这可以通过`Runtime.getRuntime().exec("kill -SIGTERM processId")`实现;在Windows上,可以使用`taskkill /F /PID processId`命令。 `CMDUtil.java`可能是一个工具类,封装了与操作系统交互的命令行...

    java调用shell脚本完美封装

    在Java编程中,有时我们需要与操作系统进行...在Linux环境下,这种方式尤其有用,因为Linux系统的许多操作可以通过Shell脚本来完成。记得在开发和部署过程中,考虑跨平台性,因为不同的操作系统可能有不同的Shell语法。

    Java调用shell脚本

    在IT行业中,Java是一种广泛应用的编程语言,而Shell脚本则是Linux或Unix系统中的命令行脚本,用于自动化执行一系列任务。将Java与Shell脚本结合使用,可以在Java应用程序中执行系统级操作或者调用复杂的命令行流程...

    JAVA-spring学习资源之编程实现操作系统匹配条件

    而对于Linux,可能是执行shell脚本。注意,执行外部命令时应处理好权限和错误流,以确保脚本正确执行。 ```java try { Process process = Runtime.getRuntime().exec(windowsScript.getFile().getAbsolutePath());...

    java执行linux的SH文件

    标题中的“java执行linux的SH文件”指的是在Java程序中调用Linux系统中的Shell脚本进行执行。这通常涉及到Java的Runtime类或者ProcessBuilder类,它们可以用来与操作系统进行交互,执行外部命令。 1. **Java运行...

    java运行shell脚本方法示例

    在Java编程中,有时我们需要在程序中执行操作系统级别的任务,比如...总的来说,通过`Runtime.execute`方法和适当的辅助类,我们可以方便地在Java程序中执行Shell脚本,从而实现与操作系统的交互,执行各种系统级任务。

Global site tag (gtag.js) - Google Analytics