Подтвердить что ты не робот

Вызов основного метода Java с параметрами из Eclipse

Во время разработки (и для отладки) очень полезно запускать обычный метод public public void main (String [] argv) класса Java изнутри Eclipse (используя контекстное меню Run As).

Есть ли аналогичный быстрый способ указать параметры командной строки для запуска? Теперь я перехожу к "Запустить диалог", перейдя по различным параметрам на вкладку, где я могу указать аргументы VM и программы и ввести их там. Слишком много шагов, плюс я не хочу смешивать более постоянные параметры конфигурации во время выполнения с параметрами однократной активации. Вместо этого я хочу проверить окно (или иметь отдельный пункт меню "Запускать как приложение Java с командной строкой" ), а затем запрашивать командную строку каждый раз (с хорошей историей).

4b9b3361

Ответ 1

Этот ответ основан на Eclipse 3.4, но должен работать в более старых версиях Eclipse.

При выборе Run As... перейдите в конфигурацию прогона.

На вкладке "Аргументы" вашей конфигурации запуска Java настройте переменную ${string_prompt} для отображения (вы можете щелкнуть переменные, чтобы получить ее, или скопировать ее, чтобы установить ее напрямую).

Каждый раз, когда вы используете эту конфигурацию запуска (назовите ее так, чтобы вы ее получили позже), вам будут предложены аргументы командной строки.

Ответ 2

Uri неверен, есть способ добавить параметры к основному методу в Eclipse напрямую, однако параметры не будут очень гибкими (допускаются некоторые динамические параметры). Вот что вам нужно сделать:

  • Запустите свой класс один раз, как есть.
  • Перейдите к Run -> Run configurations...
  • В списке lefthand выберите свой класс из списка под Java Application или введите его имя в поле фильтра.
  • Выберите вкладку "Аргументы" и напишите свои аргументы в поле Program arguments. На всякий случай, это не ясно, они разделены пробелами, поэтому "a b c" (без кавычек) означало бы, что вы передадите в свою программу аргументы a, b и c.
  • Запустите свой класс еще раз, как в шаге 1.

Тем не менее, я рекомендую использовать класс JUnit/wrapper, как это сказал Ури, так как вы получаете намного лучший контроль над фактическими параметрами, чем при этом.

Ответ 3

AFAIK для этого нет встроенного механизма в Eclipse.

Ближе всего вы можете создать оболочку, которая запрашивает эти значения и вызывает (hardcoded) main. Затем вы получаете историю выполнения, пока не очищаете завершенные процессы. Два варианта этого - либо использовать JUNit, либо использовать инъекцию или параметр, чтобы ваша обертка всегда подключалась к правильному классу для основного.

Ответ 4

Я не уверен, что вы используете, но я считаю удобным, что обычно я использую не более нескольких параметров командной строки, поэтому каждый из этих сценариев получает одну конфигурацию запуска, и я просто выбираю тот, который я хочу от История выполнения.

Функция, которую вы предлагаете, кажется немного перегруженной, IMO.

Ответ 5

Другая идея:

Поместите все свои параметры в файл свойств (один параметр = одно свойство в этом файле), затем в основном методе загрузите этот файл (используя Properties.load(*fileInputStream*)). Поэтому, если вы хотите изменить один аргумент, вам просто нужно будет отредактировать файл args.properties и запустить приложение без дополнительных действий...

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