2016-09-25 4 views
4

я прочитал в Technically what is the main difference between Oracle JDK and Open JDK?Является ли Oracle JDK не проектом с открытым исходным кодом?

«Oracle JDK является реализация OpenJDK и не является открытым исходным кодом»

Но источник JDK код в открытом доступе и бесплатно. Правильно . Итак, как получилось его не открытым исходным кодом? Может быть, я ошибаюсь здесь, судя JDK оракула как открытый источник, потому что исходный код может быть доступен и бесплатный, но не разрешено ли его изменять/расширять и распространять дальше, почему он не является открытым исходным кодом?

ответ

4

Но исходный код [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 устанавливает ограничения на то, что вы можете сделать, но они предназначены для того, чтобы сделать код бесплатным (как во свободе) и защищать права конечного пользователя.

+0

, когда вы говорите, что полный исходный код для oracle jdk недоступен. Но я вижу весь исходный код, доступный для Java api. Возможно, вы имеете в виду, что исходный код может быть недоступен для других компонентов JDK, таких как jconsole и т. Д. Правильно ли это? –

+0

Это правильно. Кроме того, исходный код для самого JVM Oracle не включен. –

+0

еще одна вещь в Oracle JDK мне разрешено изменять исходный код для моей цели и использовать его в моей продукции, если я не перераспределяю модифицированный код кому-либо еще? –

1

OpenJDK является открытым исходным кодом в соответствии с лицензией GPL v2, тогда как OracleJDK использует лицензионное соглашение Oracle Binary Code (подробнее об этом here и here).

Вы не ошибаетесь, когда говорите, что исходный код является бесплатным, но он не может быть изменен и перераспределен далее.

Смежные вопросы