代码之家  ›  专栏  ›  技术社区  ›  solotim

从Java调用shell,它抱怨“STTY:标准输入:无效的参数”

  •  6
  • solotim  · 技术社区  · 14 年前

    从Java调用进程类调用shell命令,然后打印

    "stty: standard input: Invalid argument" 
    

    不管命令是对是错(shell命令的正常输出也会显示出来)。如果在shell中运行shell命令,则不会显示此类错误消息。

    命令如下: {"/bin/csh", "-c", "echo hello"}

    4 回复  |  直到 8 年前
        1
  •  4
  •   user85421    14 年前

    尝试使用 -f csh选项禁用读取.chsrc和.login文件:

        {"/bin/csh", "-cf", "echo hello"}
    
        2
  •  7
  •   Jonathan Feinberg    14 年前

    您正在调用 stty 您的命令 .profile .bash_profile . 您必须将其标准错误重定向到 /dev/null .

    stty blah blah blah 2>/dev/null
    

    STTY无法处理Java提供的假TTY。

        3
  •  1
  •   msw    14 年前

    引用文档 java.lang.Process :

    “创建流程的方法可以 不适用于 某些本机平台,如 本机窗口进程,守护进程 进程,win16/dos进程打开 Microsoft Windows或Shell脚本。 创建的子流程没有 它自己的终端或控制台。”

    也许你会喜欢 java.lang.ProcessBuilder 相反。

        4
  •  0
  •   Community Rick James    7 年前

    你看这儿了吗? 我设法运行了一些命令,比如 this