Eclipse 运行 带空格的配置参数

Eclipse run configuration argument with spaces

我需要使用 spaces 将参数传递给我正在通过 Eclipse 运行ning 的应用程序。在 Windows 中,以下语法有效:

param="%Some Name%"

在 Linux 中,该参数总是作为单独的参数传递给解释它的 Java 代码。

对于 Bash,以下语法有效:

"param=%Some Name%"

即如果我复制完整命令并在终端中 运行 它,它会正确启动应用程序并将参数作为单个参数传递。

在 Eclipse 中,它仍然围绕 space(s) 拆分参数。

我试过用斜杠('\')转义 space。我试过用单引号替换引号。我已经尝试了所有 3 种可能的组合。我对 explain/understand 不知道 Eclipse 在这里做了什么,它在 Windows.

中做了什么

事实证明,Google/search.

也是出了名的难

更复杂的是,这不是标准的 运行 配置。它使用 VexiDev (source here) Eclipse 功能。

您是否尝试过将 整个 属性 封装在这样的引号中:

"-Dlog4j.configuration=/config location/log4j.properties"

这适用于我的机器。(Linux)

我能够做到这一点,但我必须绕过 Eclipse 并从命令行进行。

我找到了包含 运行 配置的文件。

它位于工作区的 .metadata 目录中,以“.launch”结尾

例如:

./workspace/.metadata/.plugins/org.eclipse.debug.core/.launches/FetchTest.launch

该文件是 xml 文件。

它有一个用于 VM 参数的键条目,在该条目中您可以使用 XML 转义指定字符。

所以做一些像

-ea -Dfile.encoding=UTF-8 -Duser.timezone=UTC -Dparam="Complicated Thing"

改变启动文件

<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Dfile.encoding=UTF-8 -Duser.timezone=UTC -Dparam=&quot;Complicated Thing&quot;"/>

然后我不得不重新启动 Eclipse 以让它注意到更改。

我认为诀窍是确保您在 Eclipse GUI 中输入双引号,而不是默认情况下获得的 unicode 智能引号。

如果您不输入双引号,而是从终端或纯文本编辑器复制它并将其粘贴到参数框中,它应该可以工作。

这也花了我一段时间才弄清楚,但我找到了答案。 将 运行 配置参数放在单引号中,如下例中的 3 个参数:

SVCNOW 'This is the summary' 'and this is the description'

显示命令行不会显示双引号,但当您 运行 class.

时它们会出现