import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Map;

public class KonfigurasiProses {
    public static void main(String[] args) throws Exception {
        // Direktori kerja anak dibuat lebih dulu.
        Path proyek = Path.of("proyek");
        Files.createDirectories(proyek);

        ProcessBuilder pb = new ProcessBuilder(
                "/bin/sh", "-c",
                "echo PENGGUNA=$PENGGUNA; echo WARNA=$WARNA; touch penanda.txt");
        pb.directory(proyek.toFile());

        // Environment anak: salinan dari parent, lalu kita sesuaikan.
        Map<String, String> env = pb.environment();
        env.put("PENGGUNA", "Budi");
        env.remove("WARNA");            // variabel dari parent tidak diteruskan
        env.putIfAbsent("WARNA", "netral");

        Process anak = pb.start();
        String keluaran = new String(anak.getInputStream().readAllBytes(),
                StandardCharsets.UTF_8);
        anak.waitFor();

        System.out.print(keluaran);
        System.out.println("penanda dibuat di direktori kerja anak: "
                + Files.exists(proyek.resolve("penanda.txt")));
    }
}
