Jawa / Говнокод #9628 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
for (i = 0; i < pArgs.length; ++i) {
    if (!(pArgs[i].equalsIgnoreCase("-startable"))) {
        continue;
    }
    // ... обработка
    return true;
}

for (i = 0; i < pArgs.length; ++i) {
    if (!(pArgs[i].equalsIgnoreCase("-isRunning"))) {
        continue;
    }
    // ... обработка
    return true;
}

for (i = 0; i < pArgs.length; ++i) {
    if (!(pArgs[i].equalsIgnoreCase("-shutdown"))) {
        continue;
    }
    // ... обработка
    return true;
}

из main()а жаба аппликухи. и еще три таких цикла для еще трех параметров коммандной строки.

любимая тонкость (которая сюда не попала): на ошибки коммандной строки бросается IndexOutOfBoundsException.

ЗЫ а че в жабе нет штатного парсера коммандной строки? как-то загадочно. хотя если задуматся и вспомнить что писали жабу юниксоиды, которые сами тридцать лет толковго штатного парсера коммандной строки сделать не могли, то становится в какой-то степени даже логично.

Запостил: Dummy00001 Dummy00001, (Updated )

Комментарии (10) RSS

  • Можно их слепить вместе и Scanner'у подсунуть - но лучше от этого не будет. Ну или так на так, зависит от сложности того, что в параметрах.
    Ответить
  • Ну кагбэ есть java.util.regex, кому мало - Apache Commons CLI в зубы
    Ответить
  • Но-но, как раз в юниксах с парсером командной строки всё хорошо. Но жава такой энтерпрайз.
    Ответить
    • > Но-но, как раз в юниксах с парсером командной строки всё хорошо.

      где ты там нашел что оно хорошо?

      все давно хотят GNU-style параметры, а в стандартной библиотеке только getopt() (который на некоторых БСД несовсем стандартный).

      я уже со счету сбился - столько самописных парсеров видел.
      Ответить
      • > где ты там нашел что оно хорошо
        ты еще перечисли богатый выбор стандартных методов парсинга параметров в win32

        но существу - для c++ давно пользуюсь boost::program_options, хватает с избытком, да уж побогаче getopt* будет

        для джавы командная строка - не ынтерпрайзненько, а вот создать отдельный xml файл с параметрами/настройками - это как раз java-way, даже если там будет всего 2 параметра
        Ответить
        • На самом деле командная строка в джаве нужна довольно часто (например, при запуске билда или веб-сервера). Опять же часто параметры передают в виде -Dprop.name=value, и получить это дело можно через System.getProperty("prop.name"). Подход, конечно, не айс, минус разработчикам стандартной библиотеки: нормальный парсер аргументов нужен как ни крути.
          Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8