Как определить минимальную версию JRE и системные требования для моего приложения Java

Я написал приложение на Java с помощью Eclipse IDE, и теперь мне нужно знать минимальную версию JRE, которая требуется для запуска приложения! Я знаю,что некоторые методы доступны только в более поздних JREs, но мне было интересно, какой самый простой способ узнать самое высокое требование моего приложения, поэтому любые предложения будут оценены...

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

спасибо заранее

1 ответов


  • Способ 1: для минимальной версии JRE это будет сложно. Самый простой способ-просто потребовать ту же версию, против которой вы строите, или позже, например, JRE 6.X. x или выше.
  • Способ 2: установите несколько JDK, сделав их доступными в Eclipse, и просто измените версию, которую вы создаете, каждый раз запуская набор тестов вашего приложения и убедившись, что все они проходят. Самая ранняя версия JDK, которая позволяет тесты для прохождения-это самая низкая JRE, с которой он может работать. просто успешно скомпилировать приложение недостаточно, потому что предыдущие версии JRE / JDK могут иметь ошибки, которые позволяют успешно компиляции, но не разрешить надлежащее выполнение программы.
  • Способ 3: всегда требуйте последней версии на стороне клиента, потому что Oracle постоянно латает дыры в безопасности, и в конечном счете, может быть лучше всего требовать последние версии, если вы такой контроль, на стороне клиента.

что касается ОЗУ, это легко. Когда JVM запускается, он устанавливает "максимальный" объем ОЗУ (я считаю, что по умолчанию может быть 128 МБ), и это жесткий предел, который ваше приложение не может превышать без сбоев. Профилируйте свое приложение с течением времени, настраивая настройки памяти на JVM, и узнайте, какой минимальный объем оперативной памяти вам понадобится для запуска вашего приложения как (a) с приемлемой производительностью, так и (b) без OutOfMemoryError, а вы закончите.

Ref:как настроить параметры JVM и память?

для других требований, таких как CPU req. все становится немного туманнее. Существует много процессоров, и пропускная способность, которую производит данная система, может варьироваться не только в зависимости от скорости процессора, но и скорости жесткого диска, количества ОЗУ, установленного в системе, скорости сетевого интерфейса (если вы пишете сетевое приложение) и прочие вещи. Для таких требований вы захотите просто протестировать его на различных системах и где-то нарисовать линию и сказать: "вы можете ожидать приемлемой производительности, если у вас есть оборудование, которое по крайней мере так же мощно, как X, Y, Z".

другая вещь, которую вы можете сделать, это создать тест или какой-то журнал производительности, и эти данные о производительности будут отправлены вам. Многие приложения делают это. Вы знаете ,что " мы можем отправить анонимные данные об использовании обратно на материнский корабль?" вопрос, который вы получаете при установке программного обеспечения? Ну, распространенными среди этих данных являются системные детали, такие как ОЗУ, процессор, модель жесткого диска и другие детали оборудования (любые данные, которые вы определяете, имеют отношение к вашему приложению), а также данные журнала производительности. Принимая такой подход, вы получаете много данных о производительности из множества различных конфигураций системы без необходимости иметь огромное количество по-разному настроенных машин в доме.

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