Но исходный код [Oracle] JDK является открытым и бесплатным. Правильно?
Строго говоря, №
1) Полный исходный код Oracle JDK не доступен. Почтовый файл исходного кода JDK содержит только исходный код API-интерфейсов библиотеки открытого класса. Не какой-то «внутренний» класс. Не для JDK/JRE. Не сама среда выполнения JVM; например JIT-компилятор, реализация GC, верификатор и т. д.
2) Для подмножества, которое доступно, вам необходимо принять лицензию Oracle.
3) Исходный код, который доступен в заголовках авторских прав, является запатентованным Oracle (или Sun).
Так как же его не с открытым исходным кодом?
См. Выше.
Возможно, я ошибаюсь, потому что исходный код может быть бесплатным и бесплатным, но не разрешено ли его изменять/расширять и распространять дальше, почему он не является открытым исходным кодом?
Это одна причина.
Открытый исходный код означает не только то, что исходный код доступен бесплатно. Он также доступен без излишних ограничений на то, что вы можете с ним сделать.
(А если вы хотите полного исходного кода для Oracle JDK, то не доступны бесплатно, а условия довольно ограничительные.)
В отличии от этого OpenJDK codebase покрывается GPLv2 (с «исключением Classpath», в котором уточняется, что приложение, построенное для использования библиотек JVM/классов OpenJDK, не подпадает под действие GPL.) Все, что является частью OpenJDK, доступно в виде исходного кода ... не подписывая ничего.
Уверенный, что GPL устанавливает ограничения на то, что вы можете сделать, но они предназначены для того, чтобы сделать код бесплатным (как во свободе) и защищать права конечного пользователя.
, когда вы говорите, что полный исходный код для oracle jdk недоступен. Но я вижу весь исходный код, доступный для Java api. Возможно, вы имеете в виду, что исходный код может быть недоступен для других компонентов JDK, таких как jconsole и т. Д. Правильно ли это? –
Это правильно. Кроме того, исходный код для самого JVM Oracle не включен. –
еще одна вещь в Oracle JDK мне разрешено изменять исходный код для моей цели и использовать его в моей продукции, если я не перераспределяю модифицированный код кому-либо еще? –