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

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

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

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

Dave Ray 17.12.2008 04:06
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
33
1
102 302
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

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

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

Предлагаемая вами функция кажется излишней, ИМО.

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

  1. Один раз запустите свой класс как есть.
  2. Перейти к Run -> Run configurations...
  3. В списке слева выберите свой класс из списка под Java Application или введите его имя в поле фильтра.
  4. Выберите вкладку «Аргументы» и запишите свои аргументы в поле Program arguments. На всякий случай, если это непонятно, они разделены пробелами, поэтому "a b c" (без кавычек) будет означать, что вы передадите аргументы a, b и c вашей программе.
  5. Снова запустите свой класс, как на шаге 1.

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

Я думаю, что Тило / Ури говорят о простом способе сделать это без, включая вхождение в диалоговое окно «Выполнить» - как говорится в его вопросе.

matt b 17.12.2008 17:46

Мне пришлось процитировать аргумент имени файла, потому что в нем были пробелы. Спасибо

danny117 04.02.2016 01:49

Еще одна идея:

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

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

Ответ принят как подходящий

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

При выборе «Запуск от имени ...» перейдите в настройки запуска.

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

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

Если в строковом аргументе есть пробелы, сделайте следующее:

Выполнить> Выполнить конфигурации> Приложение Java> Аргументы> Аргументы программы

  1. Заключите строковый аргумент в кавычки
  2. Разделите каждый аргумент пробелом или новой строкой

Другие вопросы по теме