Здравствуйте, indee, Вы писали:
i> Какой JDK выбрать, чтобы бесплатно,
Выбирай oenjdk, lts, т.е. 11 на сегодняшний день. Очень скоро будет 14, проапдейтишь.
i>надежно и как можно дольше не задавать этот вопрос опять?
Это какое-то странное требование. Как бы ты поступил, скажем, с версией Винды? До сих пор бы сидел на какой-нибудь там Windows NT?
Просто предусмотри что каждые 3-4 года нужно обновлять, чтобы не сидеть на неподдерживаемом старье.
Здравствуйте, indee, Вы писали:
I>Какой JDK выбрать, чтобы бесплатно, надежно и как можно дольше не задавать этот вопрос опять? I>Спасибо!
А тебе для каких целей?
На сегодняшний момент JDK по умолчанию для новых проектов — 11. Для легаси проектов чаще всего 8-я, и будет такой довольно долго. Для андроида вообще вроде семерка, возможно что изменилось, собственно то, что там была семерка максимум и явилось причиной популярности Kotlin, на котором сижу сейчас я .
У меня сейчас для нового проекта 11-я, причем я попросил еще создать докер образы с более новыми JDK чтоб когда я буду особенно вылизывать производительность можно было побенчмаркать и посмотреть есть ли улучшения. В свое время я ждал такую фичу как data types, но сейчас мне она пофиг, в текущем проекте у меня все на DirectByteBuffer, на текущем проекте ничего эта новая будущая фича мне не даст, на прошлых бы получил хорошее ускорение. Для старых восьмерка, с более новыми были проблемы.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, indee, Вы писали:
I>>Какой JDK выбрать, чтобы бесплатно, надежно и как можно дольше не задавать этот вопрос опять? I>>Спасибо! E>А тебе для каких целей?
RESTfull для Tomcat и JavaFX E>На сегодняшний момент JDK по умолчанию для новых проектов — 11. Для легаси проектов чаще всего 8-я, и будет такой довольно долго. Для андроида вообще вроде семерка, возможно что изменилось, собственно то, что там была семерка максимум и явилось причиной популярности Kotlin, на котором сижу сейчас я . E>У меня сейчас для нового проекта 11-я, причем я попросил еще создать докер образы с более новыми JDK чтоб когда я буду особенно вылизывать производительность можно было побенчмаркать и посмотреть есть ли улучшения. В свое время я ждал такую фичу как data types, но сейчас мне она пофиг, в текущем проекте у меня все на DirectByteBuffer, на текущем проекте ничего эта новая будущая фича мне не даст, на прошлых бы получил хорошее ускорение. Для старых восьмерка, с более новыми были проблемы.
JDK имеется в виду open или коммерческая oracle?
Здравствуйте, scf, Вы писали:
scf>Здравствуйте, indee, Вы писали:
I>>Какой JDK выбрать, чтобы бесплатно, надежно и как можно дольше не задавать этот вопрос опять? I>>Спасибо!
scf>А на каком языке пишете? Если на джаве, то обновляться придется, иначе не получится использовать новые фичи языка.
Java scf>Я скалист, меня oracle jdk8 устраивает на 100%.
Меня 8 тоже усраивает, особенно релизы до 16 апреля 2019, но клиенты могут бунт поднять т.к. им всегда нужно все "современное" и "поддерживаемое".
Здравствуйте, indee, Вы писали:
I>RESTfull для Tomcat и JavaFX
Мало о чем говорит. Любая подойдет . Если что, для сведения, томкат уже не мейнстрим, ща в моде встроенные серваки плюс упаковка всего в jar а не war, а jar в докерконтейнер. Соответственно JDK меняется на любую другую вообще без проблем.
I>JDK имеется в виду open или коммерческая oracle?
Я на Open сижу. Будет необходимость и увижу какую коммерческую выгоду, возможно и коммерческую какую попробую. Но с лицензиями коммерческими геморрой вообще то не слабый, тут даже не в деньгах дело.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, indee, Вы писали:
I>>RESTfull для Tomcat и JavaFX E>... ща в моде встроенные серваки плюс упаковка всего в jar а не war, а jar в докерконтейнер. Соответственно JDK меняется на любую другую вообще без проблем.
Я очень сильно отстал от моды, с этого момента пожалуйста поподробней:
— какие встроенные серваки?
— упаковка всего в jar а не war — это как?
— докерконтейнер — это что и где его взять?
Здравствуйте, indee, Вы писали:
I>Какой JDK выбрать, чтобы бесплатно, надежно и как можно дольше не задавать этот вопрос опять?
У меня был опыт переноса проекта средней сложности (~200 зависимостей) с JDK 8 на JDK 13.
Что могу сказать:
1. Из JDK выкинули некоторые библиотеки, их придется подключать явно (xml.ws, jцs и т.д.). Это в принципе решаемо
2. Некоторые функции перестали работать, причём не всегда понятно почему (стек-трейсов либо нет, либо они крайне непонятны). Т.е. вроде проект компилируется, но видимо какие-то библиотеки перестали работать под JDK13. Это уже сложнее
Поэтому, если изначально начнёте на JDK 13, то сразу порешаете все грабли, это гораздо лучше чем натыкаться на них уже потом, при миграции на JDK 8 -> JDK 13.
Здравствуйте, indee, Вы писали:
I>>>RESTfull для Tomcat и JavaFX E>>... ща в моде встроенные серваки плюс упаковка всего в jar а не war, а jar в докерконтейнер. Соответственно JDK меняется на любую другую вообще без проблем. I>Я очень сильно отстал от моды, с этого момента пожалуйста поподробней: I>- какие встроенные серваки?
Да любые. Скажем вот так hello world выглядит
И любой код получается на порядки проще писать и поддерживать, т.к. это простая java, не приходится программировать на xml.
I>- упаковка всего в jar а не war — это как?
Ну просто не собираешь war и всё, ибо нафиг нужно. Запускаешь как обычно public static void main() приложение.
I>- докерконтейнер — это что и где его взять?
Погляди Google Jib. Вот тут анимашка есть. Spring тоже кстати не нужен.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, indee, Вы писали:
I>Я очень сильно отстал от моды, с этого момента пожалуйста поподробней: I>- какие встроенные серваки?
Лет 10 назад чтобы запустить веб приложение, нужно было собрать war (а то и ear), в крутиться это должно было под WebSphere, JBOSS, если уж совсем что легковесное, то Tomcat. Сейчас просто собирается jar, внутри которого находятся все либы, и внутри будет находиться embedded jetty, vert.x, akka или еще что подобное.
I>- упаковка всего в jar а не war — это как?
Гуглить fat jar. Собирается maven или gradle плагином.
I>- докерконтейнер — это что и где его взять? https://www.docker.com/
Вкратце — это у тебя появляется образ виртуальной машины, в которой изолированная для твоего приложения файловая система, твое приложение считает что все порты свободны. И эту файловую систему и виртуальную машину ты можешь очень быстро запустить на любой операционке, переназначить порты, переназначить какие нибудь директории на папки реальной машине. И твое приложение будет работать в песочнице, практически без потери производительности на виртуализацию, и также может распространяться. Например если ты хочешь запустить на своей машине teamcity, тебе достаточно набрать в консоли
docker run -it --name teamcity-server-instance \
-v <path-to-data-directory>:/data/teamcity_server/datadir \
-v <path-to-logs-directory>:/opt/teamcity/logs \
-p <port-on-host>:8111 \
jetbrains/teamcity-server
и у тебя автоматически скачается сервак и он замапится на 8111 порт твоей машины, все конфигурирование идет в параметрах командной строки.
И это только самая базовая возможность, а на деле в современном проде у тебя будет еще кластер, на который можно автоматически деплоить с помощью декларативных конфигураций, если какая нода кластера выйдет из строя то автоматом все переедет на другую ноду, ты можешь легко перебросить все свое окружение в облако, менять провайдеры как перчатки, переезжать всей конторой в другой датацентр и пользователи даже не заметят что вчера сервак был у тебя под столом, а завтра он в амазоновском кластере крутится.
Здравствуйте, indee, Вы писали:
I>Меня 8 тоже усраивает, особенно релизы до 16 апреля 2019, но клиенты могут бунт поднять т.к. им всегда нужно все "современное" и "поддерживаемое".
Здравствуйте, indee, Вы писали:
I>Я очень сильно отстал от моды, с этого момента пожалуйста поподробней: I>- какие встроенные серваки? I>- упаковка всего в jar а не war — это как?
Почитайте про SpringBoot, по сути это "war наоборот" — то есть вы пишете код (плюс/минус те же самые сервлеты и сервисы, названия другие, но суть та же), а сборщик собирает всё это дело вместе с томкатом (или другим контейнером) в один jar, который потом запускается просто как java -jar
I>- докерконтейнер — это что и где его взять?
Я бы вам советовал этого слона есть по частям, сначала SpringBoot, потом уже его упаковка в докер.