2

从 java getRuntime().exec() 生成程序时如何为 ps 设置 argv[0] 名称?

Runtime rt = Runtime.getRuntime();
String[] cmd = {"/bin/sh", "-c", "ls > hello"};
rt.exec(cmd);

我希望进程在 ps ef 输出中有另一个名称。在 C 中你可以只覆盖 argv[0] 指针,如何在 java 中做到这一点?

4

2 回答 2

0

在 Java 中,您需要创建一个指向可执行文件的符号链接并调用它。我不相信你可以访问argv[0]

于 2012-04-16T09:09:39.623 回答
-2

@user1335897:ProcessBuilder 提供了比 Runtime 更大的灵活性,请尝试使用以下代码:

ProcessBuilder processBuilder = new ProcessBuilder(args);

    if (envMap != null) {
        processBuilder.environment().putAll(envMap);
    }

    try {
        Process process = processBuilder.start();
        process.waitFor();
    } catch (IOException ioe) {
    } catch (InterruptedException ie) {
}
于 2012-04-16T09:35:31.600 回答