`
JLK
  • 浏览: 236151 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Runtime.getRuntime().exec(cmd) cd

阅读更多

如果要在java程序里执行一条linux可以用下面的写法

Process process = Runtime.getRuntime().exec(cmd);
process.waitFor();

 但是当遇到像cd这样的命令时,上面的这种写法切不管用,很多时候我们以为是命令输错了或是文件找不到。

现在提供一种新的执行命令方法:

File wd = new File("/bin"); 
System.out.println(wd); 
Process proc = null; 
try { 
   proc = runtime.getruntime().exec("/bin/bash", null, wd); 
} 
catch (IOException e) { 
   e.printStackTrace(); 
} 
if (proc != null) { 
   BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
   PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true); 
   out.println("cd .."); 
   out.println("pwd"); 
   out.println("exit"); 
   try { 
      String line; 
      while ((line = in.readLine()) != null) { 
         System.out.println(line); 
      } 
      proc.waitFor(); 
      in.close(); 
      out.close(); 
      proc.destroy(); 
   } 
   catch (Exception e) { 
      e.printStackTrace(); 
   } 
}
 

这种写法相当于把整个bash环境拿进来了,out.println只要输入你需要执行的命令就行。

看上去很复杂,其实很实用,只要能在命令行执行的命令,都可以拿来试试。

分享到:
评论

相关推荐

    Runtime 执行bat

    Process process = Runtime.getRuntime().exec(command); // 处理子进程的输入、输出和错误流,以避免阻塞 } catch (IOException e) { e.printStackTrace(); } ``` 这里的`"cmd.exe"`是Windows系统的命令解释...

    Android中软件的静默安装

    1,申请root权限Runtime.getRuntime().exec("su"); 2,通过数据输出流DataOutputStream写入pm install命令; 3,最后获取Process进程的返回值int i = process.waitFor();,如果i=0,则表明已获取root权限。

    【IDEA】windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案

    windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案前言解决办法后记 前言 在使用IDEA本地开发监控守护线程的后台,我遇上了执行环境不兼容的问题,爆出各种“xxx不是内部或外部命令,...

    java.lang.Runtime.exec() Payload知识点详解

    Process process = Runtime.getRuntime().exec(cmd);` 避免使用空格的解决方案 为了避免使用空格的问题,可以使用以下解决方案: * 使用 Base64 编码将命令参数编码。 * 使用重定向和管道字符来避免空格问题。 *...

    Java使用Runtime.exec()给Windows命令提示符做了个外壳,真的很山寨!

    例如,`Runtime.getRuntime().exec("cmd /c " + command)`会执行一个CMD命令。 3. **输入输出流管理**:你需要连接到进程的输入流(`Process.getOutputStream()`)来发送命令,以及错误和标准输出流(`Process....

    java调用windows命令

    Process process = Runtime.getRuntime().exec("cmd.exe /c dir"); ``` - 为了确保程序在不同版本的Windows上运行,可能需要根据操作系统平台选择使用`cmd.exe`还是`command.com`。 3. **打开关联应用程序的文件...

    操作进程,显示与杀死

    如果需要强制结束,只需添加`/F`参数,如`Runtime.getRuntime().exec("taskkill /F /im Notepad.exe")`。 然而,使用Jacob库操作Office进程可能存在效率低下和服务器稳定性问题。微软官方建议不要在服务器端自动...

    AIUI使用.rar

    runtime.exec("cmd /c start " + url); } catch (IOException e) { e.printStackTrace(); } } /** * 鍦ㄥ欢杩熸寚瀹氱殑绉掓暟鍚庡叧鏈? * * @param sec * 鍏虫満寤惰繜锛屽崟浣嶏細绉? */ ...

    Java导出Oracle数据库数据

    这里的代码使用 Runtime.getRuntime().exec() 方法来执行 exp 命令,将 Oracle 数据库数据导出到文件 d:\t.dmp 中。 类似地,使用以下代码可以将数据从文件中导入到 Oracle 数据库中: ```java public boolean imp...

    Delphi实现android系统的步进电机控制.rar

     //Process p = Runtime.getRuntime().exec("su");  //然后,在向这个进程的写入要执行的命令,即可达到以root权限执行命令:  //dos.flush();  //或者用下面的方式:  //Runtime.getRuntime().exec&#...

    Java如何调用可执行文件和批处理命令.doc

    String[] cmd = {"cmd.exe", "/C", "wmic process get name"}; try { Process process = Runtime.getRuntime().exec(cmd); // 读取并打印命令输出 new Thread(new StreamDrainer(process.getInputStream()))....

    Java软件开发实战 Java基础与案例开发详解 9-3 Rintime类的使用 共6页.pdf

    Process process = Runtime.getRuntime().exec("cmd /c dir .\\"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = ...

    Java调用Shell命令的方法

    Process process = Runtime.getRuntime().exec(cmd); ``` 在上述代码中,`ls -l`是一个常见的Linux命令,用于列出目录下的文件和目录信息。`Runtime.exec()`返回一个`Process`对象,可以用来获取命令的输出、错误...

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

    然而,在Java中通过`Runtime.getRuntime().exec()`或`ProcessBuilder`执行命令时,可能还会遇到问题,因为这些方法在处理命令行参数时有自己的规则。在某些情况下,即使在DOS窗口中可以成功执行的命令,通过Java执行...

    java 使用dos命令详解

    Process process = Runtime.getRuntime().exec("cmd.exe /c dir"); ``` 这里的`/c`参数表示执行完命令后立即关闭命令提示符窗口。 #### 二、处理命令输出 执行命令后,我们通常需要处理命令的输出结果。这可以通过...

    java执行可执行文件或批处理

    Process process = Runtime.getRuntime().exec(new String[]{"cmd.exe", "/C", "my_dir.bat"}); ``` 在Windows平台上,通常还需要指定`cmd.exe /C`作为前缀,以确保批处理文件能够被正确解析和执行。 #### 示例3:...

    java中如何调cmd命令

    本文将详细介绍如何利用Java的`Runtime.getRuntime().exec()`方法来实现对CMD命令的调用,并通过具体的例子来帮助读者理解和掌握这一技术。 #### 1. 基本原理 `java.lang.Runtime`类提供了运行时环境的表示,通过...

    java javascript 调用命令行 cmd

    `Runtime.getRuntime().exec(command)` 是最基础的方法,用于执行指定的系统命令。`command`参数是一个字符串,表示要执行的命令。例如,如果你想要运行`dir`命令,可以这样写: ```java String command = "cmd /...

    java实现动态波形曲线显示.rar

     java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令。  cmd /c dir 是执行完dir命令后关闭命令窗口。  cmd /k dir 是执行完dir命令后不关闭命令窗口。  cmd /c start dir 会打开一个新...

Global site tag (gtag.js) - Google Analytics