【发布时间】:2012-05-24 17:42:26
【问题描述】:
我正在使用 Java 中的 ProcessBuilder 类启动与 Cygwin 捆绑的 SSH 实用程序。一切正常。我通过 SSH 连接到 linux 服务器,可以运行命令并读取输出。
但是,无论何时返回输出,它只会在登录服务器并运行命令后发生,例如目录列表ls,返回如下内容:
InputStream: root@myserver:/scripts/common# ls
InputStream: [00m[00mA1-4.yaml[00m [01;32mscip-1.2.0.linux.x86_64.gnu.opt.qso[00m
InputStream: [00madditional_files.txt[00m [01;32mscip-1.2.0.linux.x86_64.gnu.opt.spx[00m
据我所知,它只发生在文件列表命令中。例如,当我运行其他命令(如时间等)时,它会显示正常输出。
您能建议将这些随机字符附加到文件名的原因是什么吗?
我什至尝试使用 UTF8 编码,但没有任何改变。当我使用命令行直接登录时,我看不到这些结果。但是,cmdline 以彩色值显示文件名。是不是添加了一些不是ASCII的附加信息?
【问题讨论】:
-
好的,我刚刚意识到确实如此。添加了打印成非 ascii 字符的短颜色代码值,因此原始输出在 cmdline 中看起来不错,它在检索到的文本中显示不同。调用这个: ls --color=none 它工作得很好。
-
猜猜有人应该删除这个问题。谢谢
-
您实际上应该为您的问题创建一个答案,因为它可能会在将来对某人有所帮助。
标签: java ls processbuilder