Eclipse使用空格运行配置参数

时间:2016-05-28 18:56:16

标签: java eclipse vexi

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

param="%Some Name%"

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

使用Bash,以下语法有效:

"param=%Some Name%"

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

在Eclipse中,它仍然会围绕空格分割参数。

我尝试用斜杠('\')转义空格。我试过用单引号替换引号。我已经尝试了所有3种可能的组合。我无法解释/理解Eclipse在这里做了什么,它在Windows中有不同的作用。

谷歌/搜索也证明是非常困难的。

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

4 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

这也花了我一段时间,但我找到了答案。 像下面的示例一样,将“运行配置”参数放在单引号中,并带有3个参数:

SVCNOW'这是摘要''这是描述'

“显示命令行”不会显示双引号,但在运行类时它们会在其中。

答案 2 :(得分:0)

我能够做到这一点,但是我不得不绕过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以使其注意到更改。

答案 3 :(得分:0)

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

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