From 0cb463211d300cfa5baef97bec8314ef5a91d0d2 Mon Sep 17 00:00:00 2001 From: tongkang Date: Thu, 15 Aug 2019 11:41:51 +0800 Subject: [PATCH] =?UTF-8?q?Java=E4=BB=A3=E7=A0=81fork=E5=AD=90=E8=BF=9B?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/github/hcsp/shell/Fork.java | 15 +++++++++++++++ working-directory/output.txt | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/src/main/java/com/github/hcsp/shell/Fork.java b/src/main/java/com/github/hcsp/shell/Fork.java index 28e0700..9ec7475 100644 --- a/src/main/java/com/github/hcsp/shell/Fork.java +++ b/src/main/java/com/github/hcsp/shell/Fork.java @@ -3,6 +3,7 @@ import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Map; public class Fork { public static void main(String[] args) throws Exception { @@ -10,6 +11,20 @@ public static void main(String[] args) throws Exception { // 工作目录是项目目录下的working-directory目录(可以用getWorkingDir()方法得到这个目录对应的File对象) // 传递的命令是sh run.sh // 环境变量是AAA=123 + + //1、可行性程序,2、参数 + ProcessBuilder pb=new ProcessBuilder("sh","run.sh"); + // 3、工作路径、目录 + pb.directory(getWorkingDir()); + //4、环境变量 + Map environment = pb.environment(); + environment.put("AAA","123"); + + // pb.inheritIO(); + pb.redirectOutput(getOutputFile()); + + pb.start().waitFor(); + } private static File getWorkingDir() { diff --git a/working-directory/output.txt b/working-directory/output.txt index e69de29..511a054 100644 --- a/working-directory/output.txt +++ b/working-directory/output.txt @@ -0,0 +1,7 @@ +AAA is: 123 +total 18K +-rw-r--r-- 1 acton 197609 12 8 15 11:40 output.txt +drwxr-xr-x 1 acton 197609 0 8 15 11:40 .. +drwxr-xr-x 1 acton 197609 0 8 14 18:14 . +-rw-r--r-- 1 acton 197609 11K 8 14 18:14 .hidden.txt +-rwxr-xr-x 1 acton 197609 50 8 14 18:14 run.sh