【问题标题】:issue when running cmder.exe from a java application从 java 应用程序运行 cmder.exe 时出现问题
【发布时间】:2018-07-11 12:22:15
【问题描述】:

我正在尝试从 java 应用程序运行 cmder.exe。我正在使用 java ProcessBuilder 类,它适用于 cmd.exe,但不能适用于 cmder.exe。

这是我的代码:

    command =    "cd C:\\Users\\fxxx\\Documents\\plt 3.0\\git\\xxx-estatic";
    ProcessBuilder builder = new ProcessBuilder("C:\\PLT 3.0\\abc\\cmder_mini\\cmder.exe", "/start", command);

我想打开cmder 命令提示符并运行“cd”命令。 Cmder.exe 已实际启动,但我收到“文件名、目录名或卷标语法不正确”错误消息,并且我的命令 (cd...) 从未执行。

同样,如果我使用 cmd.exe,一切都会完美运行。

有人知道如何从 java 应用程序有效地运行 cmder.exe 吗?

非常感谢。

【问题讨论】:

  • 不是来自...\\plt 3.0\\...那个空间吗?如果你手动运行它可以工作吗?
  • cmder 是否将命令作为参数?还是cmder启动后输入的?
  • @raul1ro,是的,当我手动运行它以及在 cmd.exe 上运行它时它可以工作。
  • @NishanthSpShetty,我真的不知道如何通过 ProcessBuilder 运行 cmder.exe。当然,我需要学习一些技巧。我想使用cmder,因为用户界面比黑白的cmd.exe 更好。有没有办法给 cmd.exe 添加一些颜色?

标签: java cmder


【解决方案1】:

RTFM!

假设您使用that cmder.exe,文档说明:

Cmder.exe 命令行参数

Argument                Description
/C [user_root_path]     Individual user Cmder root folder. Example: %userprofile%\cmder_config
/SINGLE                 Start Cmder is single mode.
/START [start_path]     Folder path to start in.
/TASK [task_name]       Task to start after launch.

这意味着你的代码应该是:

path =    "cd C:\\Users\\fxxx\\Documents\\plt 3.0\\git\\xxx-estatic";
ProcessBuilder builder = new ProcessBuilder("C:\\PLT 3.0\\abc\\cmder_mini\\cmder.exe", "/start", path);

【讨论】:

  • 嗨,这就是我正在做的。我可以让 cmder 打开命令提示符,但与 cmd.exe 不同,它不会运行从 java 程序发送的任何内容。看来我只能在cmder.exe上手动输入命令。
猜你喜欢
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 2021-06-11
  • 2020-06-26
  • 1970-01-01
相关资源
最近更新 更多