diff --git a/src/main/java/com/github/hcsp/shell/Fork.java b/src/main/java/com/github/hcsp/shell/Fork.java index 28e0700..11bacf7 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,21 @@ public static void main(String[] args) throws Exception { // 工作目录是项目目录下的working-directory目录(可以用getWorkingDir()方法得到这个目录对应的File对象) // 传递的命令是sh run.sh // 环境变量是AAA=123 + //设置1.可执行程序。2.参数 + ProcessBuilder builder = new ProcessBuilder("sh", "run.sh"); + + //设置工作目录 + builder.directory(getWorkingDir()); + + //设置环境变量 + Map env = builder.environment(); + + env.put("AAA", "123"); + //从定向到输出到文件 + builder.redirectOutput(getOutputFile()); + //输出到当前进程 +// pb.inheritIO(); + builder.start().waitFor(); } private static File getWorkingDir() { @@ -20,4 +36,4 @@ private static File getWorkingDir() { private static File getOutputFile() { return new File(getWorkingDir(), "output.txt"); } -} +} \ No newline at end of file diff --git a/working-directory/output.txt b/working-directory/output.txt index e69de29..675331d 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 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