From 4f576f8b00d59145abe2f9a0a4d716fc560689aa Mon Sep 17 00:00:00 2001 From: Ethan Wang <1527185002@qq.com> Date: Sun, 1 Sep 2019 22:39:12 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BD=BF=E7=94=A8Java=E4=BB=A3=E7=A0=81for?= =?UTF-8?q?k=E5=AD=90=E8=BF=9B=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 | 7 +++++++ working-directory/output.txt | 7 +++++++ 2 files changed, 14 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..49707e2 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,12 @@ public static void main(String[] args) throws Exception { // 工作目录是项目目录下的working-directory目录(可以用getWorkingDir()方法得到这个目录对应的File对象) // 传递的命令是sh run.sh // 环境变量是AAA=123 + ProcessBuilder pb = new ProcessBuilder("sh", "run.sh"); + pb.directory(getWorkingDir()); + Map envs = pb.environment(); + envs.put("AAA", "123"); + pb.redirectOutput(getOutputFile()); + pb.start().waitFor(); } private static File getWorkingDir() { diff --git a/working-directory/output.txt b/working-directory/output.txt index e69de29..752e4b0 100644 --- a/working-directory/output.txt +++ b/working-directory/output.txt @@ -0,0 +1,7 @@ +AAA is: 123 +total 18K +-rw-r--r-- 1 sentry 197121 12 9月 1 22:37 output.txt +drwxr-xr-x 1 sentry 197121 0 9月 1 22:37 .. +-rwxr-xr-x 1 sentry 197121 50 9月 1 20:27 run.sh +drwxr-xr-x 1 sentry 197121 0 9月 1 20:27 . +-rw-r--r-- 1 sentry 197121 11K 9月 1 20:27 .hidden.txt From 4be3580c0f3768ae28865a0f1c85f4d0517c5e8b Mon Sep 17 00:00:00 2001 From: Ethan Wang <1527185002@qq.com> Date: Sun, 1 Sep 2019 22:42:32 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BD=BF=E7=94=A8Java=E4=BB=A3=E7=A0=81for?= =?UTF-8?q?k=E5=AD=90=E8=BF=9B=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 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/github/hcsp/shell/Fork.java b/src/main/java/com/github/hcsp/shell/Fork.java index 49707e2..1e48587 100644 --- a/src/main/java/com/github/hcsp/shell/Fork.java +++ b/src/main/java/com/github/hcsp/shell/Fork.java @@ -13,6 +13,7 @@ public static void main(String[] args) throws Exception { // 环境变量是AAA=123 ProcessBuilder pb = new ProcessBuilder("sh", "run.sh"); pb.directory(getWorkingDir()); + Map envs = pb.environment(); envs.put("AAA", "123"); pb.redirectOutput(getOutputFile()); From 7bc285233253749f307f73aec38720792fbce8cb Mon Sep 17 00:00:00 2001 From: Ethan Wang <1527185002@qq.com> Date: Sun, 1 Sep 2019 22:44:52 +0800 Subject: [PATCH 3/5] fork --- src/main/java/com/github/hcsp/shell/Fork.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/github/hcsp/shell/Fork.java b/src/main/java/com/github/hcsp/shell/Fork.java index 1e48587..01e06fb 100644 --- a/src/main/java/com/github/hcsp/shell/Fork.java +++ b/src/main/java/com/github/hcsp/shell/Fork.java @@ -14,6 +14,7 @@ public static void main(String[] args) throws Exception { ProcessBuilder pb = new ProcessBuilder("sh", "run.sh"); pb.directory(getWorkingDir()); + Map envs = pb.environment(); envs.put("AAA", "123"); pb.redirectOutput(getOutputFile()); From 4cb242234dbb2f04932891b53aafe32e249104a4 Mon Sep 17 00:00:00 2001 From: Ethan Wang <1527185002@qq.com> Date: Sun, 1 Sep 2019 23:01:29 +0800 Subject: [PATCH 4/5] fork --- src/main/java/com/github/hcsp/shell/Fork.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/github/hcsp/shell/Fork.java b/src/main/java/com/github/hcsp/shell/Fork.java index 01e06fb..7766526 100644 --- a/src/main/java/com/github/hcsp/shell/Fork.java +++ b/src/main/java/com/github/hcsp/shell/Fork.java @@ -11,13 +11,10 @@ public static void main(String[] args) throws Exception { // 工作目录是项目目录下的working-directory目录(可以用getWorkingDir()方法得到这个目录对应的File对象) // 传递的命令是sh run.sh // 环境变量是AAA=123 - ProcessBuilder pb = new ProcessBuilder("sh", "run.sh"); + ProcessBuilder pb = new ProcessBuilder("sh","run.sh"); pb.directory(getWorkingDir()); - - - Map envs = pb.environment(); - envs.put("AAA", "123"); - pb.redirectOutput(getOutputFile()); + Map envs = pb.environment(); + envs.put("AAA","123"); pb.start().waitFor(); } From 72edf64e1a21dbefe76d013c5c9fc2736ed7bac4 Mon Sep 17 00:00:00 2001 From: Ethan Wang <1527185002@qq.com> Date: Sun, 1 Sep 2019 23:03:19 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=9C=AA=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/github/hcsp/shell/Fork.java | 1 + working-directory/output.txt | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/main/java/com/github/hcsp/shell/Fork.java b/src/main/java/com/github/hcsp/shell/Fork.java index 7766526..858a812 100644 --- a/src/main/java/com/github/hcsp/shell/Fork.java +++ b/src/main/java/com/github/hcsp/shell/Fork.java @@ -16,6 +16,7 @@ public static void main(String[] args) throws Exception { Map envs = pb.environment(); envs.put("AAA","123"); pb.start().waitFor(); + } private static File getWorkingDir() { diff --git a/working-directory/output.txt b/working-directory/output.txt index 752e4b0..e69de29 100644 --- a/working-directory/output.txt +++ b/working-directory/output.txt @@ -1,7 +0,0 @@ -AAA is: 123 -total 18K --rw-r--r-- 1 sentry 197121 12 9月 1 22:37 output.txt -drwxr-xr-x 1 sentry 197121 0 9月 1 22:37 .. --rwxr-xr-x 1 sentry 197121 50 9月 1 20:27 run.sh -drwxr-xr-x 1 sentry 197121 0 9月 1 20:27 . --rw-r--r-- 1 sentry 197121 11K 9月 1 20:27 .hidden.txt