From f1ab79bebcb80918f1c7e834edf1c971f9a4a508 Mon Sep 17 00:00:00 2001 From: niuweizhe Date: Sun, 27 Dec 2020 17:32:55 +0800 Subject: [PATCH 1/4] java fork process --- src/main/java/com/github/hcsp/shell/Fork.java | 11 +++++++++++ working-directory/output.txt | 7 +++++++ 2 files changed, 18 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..1001e19 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,16 @@ 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..45febe6 100644 --- a/working-directory/output.txt +++ b/working-directory/output.txt @@ -0,0 +1,7 @@ +AAA is: 123 +total 40 +-rw-r--r-- 1 niuweizhe staff 12B Dec 27 17:29 output.txt +drwxr-xr-x 13 niuweizhe staff 416B Dec 27 17:27 .. +-rw-r--r-- 1 niuweizhe staff 47B Dec 27 17:19 run.sh +drwxr-xr-x 5 niuweizhe staff 160B Dec 27 17:19 . +-rw-r--r-- 1 niuweizhe staff 11K Dec 27 17:19 .hidden.txt From 7d6081b692b508e6c0a360b22864ec8dda639ce9 Mon Sep 17 00:00:00 2001 From: niuweizhe Date: Sun, 27 Dec 2020 17:52:04 +0800 Subject: [PATCH 2/4] java fork process again --- src/main/java/com/github/hcsp/shell/Fork.java | 8 +++++--- working-directory/output.txt | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/github/hcsp/shell/Fork.java b/src/main/java/com/github/hcsp/shell/Fork.java index 1001e19..6bd8e51 100644 --- a/src/main/java/com/github/hcsp/shell/Fork.java +++ b/src/main/java/com/github/hcsp/shell/Fork.java @@ -13,11 +13,13 @@ public static void main(String[] args) throws Exception { // 环境变量是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"); + Map envs = pb.environment(); + envs.put("AAA", "123"); pb.redirectOutput(getOutputFile()); + pb.start().waitFor(); pb.start().waitFor(); diff --git a/working-directory/output.txt b/working-directory/output.txt index 45febe6..86b0d01 100644 --- a/working-directory/output.txt +++ b/working-directory/output.txt @@ -1,6 +1,6 @@ AAA is: 123 total 40 --rw-r--r-- 1 niuweizhe staff 12B Dec 27 17:29 output.txt +-rw-r--r-- 1 niuweizhe staff 12B Dec 27 17:51 output.txt drwxr-xr-x 13 niuweizhe staff 416B Dec 27 17:27 .. -rw-r--r-- 1 niuweizhe staff 47B Dec 27 17:19 run.sh drwxr-xr-x 5 niuweizhe staff 160B Dec 27 17:19 . From 3d0bb7782ba5d41ad1bbd2d2467492f31f85adf7 Mon Sep 17 00:00:00 2001 From: niuweizhe Date: Sun, 27 Dec 2020 17:56:30 +0800 Subject: [PATCH 3/4] java fork --- src/main/java/com/github/hcsp/shell/Fork.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/github/hcsp/shell/Fork.java b/src/main/java/com/github/hcsp/shell/Fork.java index 6bd8e51..2f02a8d 100644 --- a/src/main/java/com/github/hcsp/shell/Fork.java +++ b/src/main/java/com/github/hcsp/shell/Fork.java @@ -11,17 +11,17 @@ 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"); + //设置工作目录 pb.directory(getWorkingDir()); - Map envs = pb.environment(); - envs.put("AAA", "123"); + //设置环境变量 + Map env = pb.environment(); + env.put("AAA", "123"); + //从定向到输出到文件 pb.redirectOutput(getOutputFile()); - pb.start().waitFor(); - - + //输出到当前进程 +// pb.inheritIO(); pb.start().waitFor(); } @@ -33,4 +33,4 @@ private static File getWorkingDir() { private static File getOutputFile() { return new File(getWorkingDir(), "output.txt"); } -} +} \ No newline at end of file From 3d17d0cf7b47e630fa35bdae1f4a8de9b570396a Mon Sep 17 00:00:00 2001 From: niuweizhe Date: Mon, 28 Dec 2020 21:45:49 +0800 Subject: [PATCH 4/4] java fork process --- src/main/java/com/github/hcsp/shell/Fork.java | 13 ++++++++----- working-directory/output.txt | 4 ++-- 2 files changed, 10 insertions(+), 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 2f02a8d..11bacf7 100644 --- a/src/main/java/com/github/hcsp/shell/Fork.java +++ b/src/main/java/com/github/hcsp/shell/Fork.java @@ -12,17 +12,20 @@ public static void main(String[] args) throws Exception { // 传递的命令是sh run.sh // 环境变量是AAA=123 //设置1.可执行程序。2.参数 - ProcessBuilder pb = new ProcessBuilder("sh", "run.sh"); + ProcessBuilder builder = new ProcessBuilder("sh", "run.sh"); + //设置工作目录 - pb.directory(getWorkingDir()); + builder.directory(getWorkingDir()); + //设置环境变量 - Map env = pb.environment(); + Map env = builder.environment(); + env.put("AAA", "123"); //从定向到输出到文件 - pb.redirectOutput(getOutputFile()); + builder.redirectOutput(getOutputFile()); //输出到当前进程 // pb.inheritIO(); - pb.start().waitFor(); + builder.start().waitFor(); } private static File getWorkingDir() { diff --git a/working-directory/output.txt b/working-directory/output.txt index 86b0d01..675331d 100644 --- a/working-directory/output.txt +++ b/working-directory/output.txt @@ -1,7 +1,7 @@ AAA is: 123 total 40 --rw-r--r-- 1 niuweizhe staff 12B Dec 27 17:51 output.txt -drwxr-xr-x 13 niuweizhe staff 416B Dec 27 17:27 .. +-rw-r--r-- 1 niuweizhe staff 12B Dec 28 19:17 output.txt +drwxr-xr-x 13 niuweizhe staff 416B Dec 28 19:17 .. -rw-r--r-- 1 niuweizhe staff 47B Dec 27 17:19 run.sh drwxr-xr-x 5 niuweizhe staff 160B Dec 27 17:19 . -rw-r--r-- 1 niuweizhe staff 11K Dec 27 17:19 .hidden.txt