Как передать буквальную ссылку на переменную ($ {foo}) в качестве аргумента программы в конфигурации запуска - PullRequest
13 голосов
/ 26 января 2011

В Eclipse, когда вы задаете аргументы в диалоговом окне запуска, Eclipse интерпретирует ${foo} как запрос на использование переменной Eclipse foo .Я хотел бы передать в мое приложение строку, содержащую ${foo}, но Eclipse рассматривает ее как неопределенную переменную и выдает ошибку.

 -Dfoo "bar" --pattern "regex magic ${foo}"

Eclipse не принимает одинарную кавычку (')цитируя символ, вместо этого он становится частью ввода.Кто-нибудь знает, как я могу экранировать ${foo} в этом диалоге, чтобы он интерпретировался как текст, а не как ссылка на переменную?

Ответы [ 3 ]

15 голосов
/ 24 февраля 2011

$ {foo} само по себе можно экранировать с помощью $ "{foo}".

Когда $ {foo} уже является частью строки с двойными кавычками, как в вашем вопросе, яуверен, как или если это можно избежать.

10 голосов
/ 17 сентября 2011

Я не думаю, что есть какой-либо способ сделать это в Eclipse.

Неисправный бит кода: org.eclipse.core.internal.variables.StringSubstitutionEngine # substitute .

Это фрагмент кода, который заменяет $ {foo} на то, что вы определили как foo.К сожалению, он может справиться с вложенными и сцепленными переменными, поэтому, если dollar = "$" и rest = "{foo}", то $ {dollar} $ {rest} дает $ {foo}, который вычисляется снова.

Для информации, в коде reportUndefinedVariables жестко закодировано как true далее вверх по стеку, поэтому вы получаете сообщение об ошибке.Кажется, нет никакого способа изменить это.

5 голосов
/ 21 января 2013

Вы должны определить переменную в Eclipse: имя = доллар, значение = $

(Это можно сделать в диалоговом окне «запустить конфигурацию», когда вы вводите свои аргументы, нажимаете «Переменные ...", а затем нажмите" Изменить переменные ... "и добавьте эту переменную).

Затем в текстовом поле аргументов введите $ {dollar}" {foo} "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...