Страницы

Поиск по вопросам

Показаны сообщения с ярлыком openjdk. Показать все сообщения
Показаны сообщения с ярлыком openjdk. Показать все сообщения

воскресенье, 2 февраля 2020 г.

Что означает auto mode в update-alternatives --config java?

#linux #java #openjdk


Что означает auto mode в update-alternatives --config java?
Вот, что нашел в man, но это ситуацию не особо разъяснило.


  automatic mode
   When a link group is in automatic mode, the
  alternatives system ensures that the links in the  group  point  to 
  the  highest  priority alternative appropriate for the group.
  
  manual mode
  When a link group is in manual mode, the alternatives
  system will not make any changes to the system administrator's
  settings.

    


Ответы

Ответ 1



https://help.ubuntu.com/community/Java вкратце, это механизм выбора пакетов по приоретам (для апдейтов, допустим). Ну, например, для java cуществуют по крайней мере 4 возможные для установки по дефолту реализации: OpenJDK Oracle Java IBM Java GNU Compiler автоматический режим выберет ту реализацию, которая считается системой "самой правильной" ручной - оставит ту, которую ты указал изначально. я бы советовал использовать автоматическую, а ручной режим выбирать только если ты точно знаешь, что твой софт не работает, например, с OpenJDK, а только с Oracle Java

Ответ 2



что такое система альтернатив, кратко, но неплохо, изложено в википедийной статье, с которой я рекомендую ознакомиться прежде чем читать дальше. в чём смысл auto mode и manual mode, попробую объяснить на примере программы vim. поставили вы свежую систему, и в ней этой программы нет вообще. установили вы пакет vim. в него входит (в том числе) файл /usr/bin/vim.basic, а в послеустановочном скрипте (с помощью программы update-alternatives) этот файл регистрируется как альтернатива для файла /usr/bin/vim с приоритетом 30 (почему именно 30? ну, так сопровождающие пакетов решили). и получается такая цепочка ссылок: /usr/bin/vim → /etc/alternatives/vim → /usr/bin/vim.basic установили вы после этого пакет vim-gtk, в который входит (в том числе) файл /usr/bin/vim.gtk, а в послеустановочном скрипте этот файл регистрируется как альтернатива тому же самому файлу /usr/bin/vim, но с приоритетом 50. и так как набор альтернатив для файла /usr/bin/vim в данный момент находился в «авто-режиме» (auto mode), то программой update-alternatives (которая была вызвана в послеустановочном скрипте пакета vim-gtk) текущей альтернативой выбирается та, которая имеет больший приоритет, т.е., /usr/bin/vim.gtk. и получается чуть иная цепочка ссылок: /usr/bin/vim → /etc/alternatives/vim → /usr/bin/vim.gtk а вот если бы перед установкой пакета vim-gtk вы запустили sudo update-alternatives --config vim и вручную выбрали бы вариант /usr/bin/vim.basic (и неважно, что он был одним-единственным на тот момент), то набор альтернатив переключился бы на «ручной режим» (manual mode), и после установки пакета vim-gtk переключения альтернативы бы не произошло, осталась актуальной старая цепочка ссылок: /usr/bin/vim → /etc/alternatives/vim → /usr/bin/vim.basic где же фиксируются все эти приоритеты, возможные альтернативы, текущий режим (auto/manual) для, например, программы vim? в файле /var/lib/dpkg/alternatives/vim: manual /usr/bin/vim /usr/bin/vim.basic 30 /usr/bin/vim.gtk 50 первая строка — режим (auto или manual), вторая строка — собственно файл, для которого дальше перечислены альтернативы со своими приоритетами. а как вернуть обратно «авто-режим»? $ sudo update-alternatives --auto vim стоит отметить, что «авто-режим» «включается» по умолчанию при регистрации самой первой альтернативы для файла. а «ручной режим» «включается» после того, как с помощью опции --config имя программы update-alternatives вы вручную указали использовать какую-то из альтернатив. (вообще, конечно, можно и без update-alternatives, поменть первую строку в файле /var/lib/dpkg/alternatives/имя).

среда, 22 января 2020 г.

Имею ли я право на использование JDK в своём продукте?

#openjdk #лицензирование


Всем привет, вопрос такой. Я разрабатываю IDE с использованием JDK. Имею ли я право
так делать? Мне надо спросить у пользователя принять лицензионное соглашение? Где его
взять, как подать?
    


Ответы

Ответ 1



Вопросы о лицензировании и распространении Официальная лицензия на сайте Oracle Да, программное обеспечение Java можно распространять вместе с разработанным вами программным обеспечением при условии соблюдения положений и условий лицензионного соглашения о распространении двоичного кода Java. Программное обеспечение Java можно распространять на компакт-дисках cреди пользователей организации. Кроме того, вы вправе включать Java в состав разрабатываемых вами приложений и распространять их в едином пакете за пределами вашей организации. Распространение программного обеспечения Java на компакт-дисках за пределами организации без включения его в состав разрабатываемых вами приложений запрещено.

среда, 25 декабря 2019 г.

Свободная JVM для не свободного ПО

#java #jvm #steam #openjdk


Имеется игра для андроида написанная на Java. Есть рабочий порт для винды и линукса.
Понятно что нужно использовать такие вещи как Launch4j. Понятно что не сложно написать
обертку для установочника и самому. Но не понятно, где взять свободную JVM, которую
можно было бы без мучений совести вкрутить в установочник, и продавать все это дело,
например на стиме, или гоге.
С лицензиями ХотСпота ничего не понял, не говоря уже о оракловских.
    


Ответы

Ответ 1



Вы можете свободно распространять билды OpenJDK вместе со своим коммерческим ПО. UPDATE: Вам не нужно ничего "вынимать" из OpenJDK. Вы можете просто указать Launch4j на необходимость включить JRE в состав результирующего файла. OpenJDK лицензирована под GPLv2. Ограничения будут действовать на производное ПО только в том случае, если вы собираетесь на её основе сделать LevenbergJDK The copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. OpenJDK состоит из средств разработки и среды выполнения. Ни то, ни другое никак не ограничивают условия использования ПО скомпилированного этими средствами или запускаемого в этой среде. Вы же не думаете, что программы собранные с помощью GCC и запускаемые в Linux должны быть обязательно бесплатными, а собранные с помощью MSVC и запускаемые в Windows обязательно платными? P.S. А ещё лучше вместо Launch4j используйте родную утилиту jlink.

воскресенье, 8 декабря 2019 г.

Версии Java: платные - не платные, что вообще происходит?

#java #openjdk


Если я разрабатываю на Spring MVC web приложение, какую версию Java мне взять, для
проекта, который планируется запустить в интернет с целью заработка и чтобы не платить
при этом Oracle?

Раньше все было просто: качал последнюю версию и ни о чем не задумывался.

После продолжительного перерыва в Java я зашел по старинке на сайт, скачал последнюю
доступную версию Java, коей оказалась jdk 12.0.1. 

Но тут я начинаю узнавать, что есть какие-то сборки OpenJDK, Oracle JDK, что начиная
с 1.8 что-то поменялось. Oracle какое-то лицензирование ввело.

Можете кратко объяснить, какую взять версию Java для разработки сайта на Spring MVC,
на котором планируется зарабатывать на рекламе и возможно в отдаленном будушем на платных
подписках(т.е. планируется коммерческий продукт), чтобы при этом не заморачивать себе
голову с лицензированием?
    


Ответы

Ответ 1



Язык Java и виртуальная машина HotSpot - это open source. Есть абсолютно бесплатный OpenJDK в который контрибьютят множество других компаний, кроме Oracle - от небольших типа Excelsior JET до гигантов типа IBM. Oracle JDK собирается из исходного кода Open JDK. Они полностью идентичны. Деньги Oracle берёт за поддержку собственной сборки. Так же, как у Red Hat есть платная поддержка бесплатного Линукса. Если вам поддержка не нужна, используйте одну из множества бесплатных сборок OpenJDK и живите спокойно. Если вы компания класса MailRu Group, предоставляющая высоконагруженные сервисы 330 миллионам пользователей, и ваши специалисты каждую неделю находят баг в виртуальной машине, лучше использовать платный Oracle JDK. Подробное официальное заявление на эту тему можно прочитать здесь.

Ответ 2



OpenJDK - абсолютно бесплатен, но его надо обновлять каждые 6 месяцев в сентябре и марте (выходят новые версии).

четверг, 5 декабря 2019 г.

Придётся ли платить за Java 11?

#java #openjdk #java_11


Читал какие-то английские статьи про обновление java 11, поддержку старых версий
и т.д., и общую направленность Oracle сделать java платной по $25 за процессор в месяц.
Не знаю как к этому отнестись(мне интересна разработка). Как это повлияет на java в
будущем? Не станут ли топ компании переходить с java на что нибудь другое.?
    


Ответы

Ответ 1



Платной будет LTS версия. Платной она станет через 6 месяцев после выхода. До этого момента можно качать бесплатно. Да и после 6 месяцев можно будет скачать бесплатно архивные версии. А вот обновления не получите, да. Всегда остаётся бесплатный OpenJDK с AdoptOpenJDK (:

Ответ 2



Популярность питон в последний год выросла выше джава, наверно не случайно. Писать на 8-9 джаве можно будет смело еще пару-тройку лет смело. А там видно будет, как программисты перестанут учиться на джаве, если она будет платная, настанет закат империи, но думаю вряд ли так сделают. Введут 11 java платную, ее будут юзать 1% и на след год будет опять бесплатная. ))) А так, этот вопрос вызовет бесконечные прения и дискуссии, пока не выйдет 11 java, вот. ))) Закрываем обсуждение. ))

суббота, 6 июля 2019 г.

Ошибка: The method … of type … must override a superclass method

Здравствуйте. Ошибка при компиляции с OpenJDK. Ситуация следующая. Есть нижеприведённый код: class MyAction extends AbstractAction {
@Override public void actionPerformed(ActionEvent arg0) {
// что-то делаем...
}
} Вроде всё нормально, и Eclipse ошибку не показывает. Но при попытке компиляции из консоли выскакивает ошибка "The method actionPerformed(ActionEvent) of type MyClass.MyAction must override a superclass method". Такая ошибка обычно появляется в тех случаях, когда не совпадает сигнатура или тип возвращаемого переопределяемой функцией значения, или, что то же самое, при помещении Override над методом, который не имеет "прототипов" в классе-родителе. Во-вторых, IDE такие ошибки отлавливает, подчёркивает и ничего не хочет компилировать. А здесь всё выглядит нормально. Что характерно, с обычным JDK эта ошибка не появляется. Структура пакетов там, насколько я помню, та же самая, что и в стандартном JDK - java.awt.event.ActionEvent. Также проверил, какие java-библиотеки вообще видит Eclipse, оказалось, что только OpenJDK. Кто-нибудь сталкивался с подобным?


Ответ

class MyAction extends AbstractAction { public MyAction() { super(); } @Override public void actionPerformed(ActionEvent arg0) { // что-то делаем... } }

пятница, 5 апреля 2019 г.

Что означает auto mode в update-alternatives --config java?

Что означает auto mode в update-alternatives --config java? Вот, что нашел в man, но это ситуацию не особо разъяснило.
automatic mode When a link group is in automatic mode, the alternatives system ensures that the links in the group point to the highest priority alternative appropriate for the group. manual mode When a link group is in manual mode, the alternatives system will not make any changes to the system administrator's settings.


Ответ

https://help.ubuntu.com/community/Java
вкратце, это механизм выбора пакетов по приоретам (для апдейтов, допустим). Ну, например, для java cуществуют по крайней мере 4 возможные для установки по дефолту реализации:
OpenJDK Oracle Java IBM Java GNU Compiler
автоматический режим выберет ту реализацию, которая считается системой "самой правильной"
ручной - оставит ту, которую ты указал изначально.
я бы советовал использовать автоматическую, а ручной режим выбирать только если ты точно знаешь, что твой софт не работает, например, с OpenJDK, а только с Oracle Java

воскресенье, 10 марта 2019 г.

Имею ли я право на использование JDK в своём продукте?

Всем привет, вопрос такой. Я разрабатываю IDE с использованием JDK. Имею ли я право так делать? Мне надо спросить у пользователя принять лицензионное соглашение? Где его взять, как подать?


Ответ

Вопросы о лицензировании и распространении
Официальная лицензия на сайте Oracle
Да, программное обеспечение Java можно распространять вместе с разработанным вами программным обеспечением при условии соблюдения положений и условий лицензионного соглашения о распространении двоичного кода Java.
Программное обеспечение Java можно распространять на компакт-дисках cреди пользователей организации. Кроме того, вы вправе включать Java в состав разрабатываемых вами приложений и распространять их в едином пакете за пределами вашей организации. Распространение программного обеспечения Java на компакт-дисках за пределами организации без включения его в состав разрабатываемых вами приложений запрещено.