从 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 中做到这一点?
从 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 中做到这一点?
在 Java 中,您需要创建一个指向可执行文件的符号链接并调用它。我不相信你可以访问argv[0]
@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) {
}