【问题标题】:Path with "C:/Program Files" in a CLI argument evaluated as two argumentsCLI 参数中带有“C:/Program Files”的路径被评估为两个参数
【发布时间】:2017-04-04 12:15:28
【问题描述】:

我正在尝试运行 Java 的 keytool 实用程序来导入一些根证书,如下所示:

keytool -importcert -alias startssl -keystore %JAVA_HOME%\jre\lib\security\cacerts -storepass changeit -file mycert.cer

JAVA_HOME 设置为 %PROGRAMFILES%\Java\jdk1.8.0_112

运行时,程序返回此消息:

Illegal option:  Files\Java\jdk1.8.0_112\jre\lib\security\cacerts
keytool -importcert [OPTION]...

Windows 显然将名称“Program Files”中空格之前的部分作为一个参数,而将其后的部分作为另一个参数。为什么我会收到此错误,我该如何解决?他们在编写实用程序时似乎不太可能没有想到这一点,我一定遗漏了一些东西。

【问题讨论】:

  • 我相信windows处理空格的方式是将路径用双引号(")括起来

标签: windows command-line arguments


【解决方案1】:

试试这个:

keytool -importcert -alias startssl -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -file mycert.cer

或者只是手动扩展完整路径:

keytool -importcert -alias startssl -keystore "C:\Programs Files\Java\jdk1.8.0_112\jre\lib\security\cacerts" -storepass changeit -file mycert.cer

【讨论】:

  • 工作。我还要补充一点,如果通过命令行处理 Program Files,您需要以管理员身份运行 cmd,否则它将拒绝您的访问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 2012-02-03
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多