我通过 java 中的 Process 类调用 shell 命令并打印
"stty: standard input: Invalid argument"
不管命令是对是错(也显示了shell命令的正常输出)。如果我在 shell 中运行 shell 命令,则不会显示此类错误消息。
命令是这样的:{"/bin/csh", "-c", "echo hello"}
您正在从, 或调用stty
命令。您必须将其标准错误重定向到..profile
.bash_profile
/dev/null
stty blah blah blah 2>/dev/null
stty 无法处理 Java 在脱壳时提供的伪 tty。
尝试使用-f
csh 选项禁用读取 .chsrc 和 .login 文件:
{"/bin/csh", "-cf", "echo hello"}
“创建进程的方法可能不适用于某些本机平台上的特殊进程,例如本机窗口进程、守护进程、Microsoft Windows 上的 Win16/DOS 进程或 shell 脚本。创建的子进程没有自己的终端或控制台。”
也许您更喜欢java.lang.ProcessBuilder。
你看这里吗。我设法运行了一些这样的命令