Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion src/main/java/com/github/hcsp/shell/Fork.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,29 @@
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 {
// 请在这里使用Java代码fork一个子进程,将fork的子进程的标准输出重定向到指定文件:工作目录下名为output.txt的文件
// 工作目录是项目目录下的working-directory目录(可以用getWorkingDir()方法得到这个目录对应的File对象)
// 传递的命令是sh run.sh
// 环境变量是AAA=123
//设置1.可执行程序。2.参数
ProcessBuilder builder = new ProcessBuilder("sh", "run.sh");

//设置工作目录
builder.directory(getWorkingDir());

//设置环境变量
Map<String, String> env = builder.environment();

env.put("AAA", "123");
//从定向到输出到文件
builder.redirectOutput(getOutputFile());
//输出到当前进程
// pb.inheritIO();
builder.start().waitFor();
}

private static File getWorkingDir() {
Expand All @@ -20,4 +36,4 @@ private static File getWorkingDir() {
private static File getOutputFile() {
return new File(getWorkingDir(), "output.txt");
}
}
}
7 changes: 7 additions & 0 deletions working-directory/output.txt
Original file line number Diff line number Diff line change
@@ -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