2006년 11월 13일 JavaOne 컨퍼런스에서 Sun은 결국 Java를 오픈 소스로 만들겠다고 발표했고, 이후 1년여 동안 점차 GPL v2(GNU General Public License v2)에 따라 JDK의 다양한 부분을 출시했습니다. 소스코드가 공개되었으며, 이러한 소스코드를 독립적으로 관리하기 위해 OpenJDK 조직이 설립되었습니다. 아주 적은 양의 독점 코드(대부분 Sun 자체에 오픈 소스 권한이 없는 Encumbered 코드)를 제외하고 OpenJDK에는 Sun JDK의 거의 모든 코드가 포함되어 있습니다. OpenJDK의 품질 책임자는 JDK 1.7에서 Sun을 제외하고는 다음과 같이 말했습니다. 코드 파일 헤더의 저작권 주석의 경우 JDK와 OpenJDK의 코드는 기본적으로 동일하므로 OpenJDK 7과 Sun JDK 1.7은 본질적으로 동일한 코드 베이스에서 개발된 제품입니다.
2006년 11월 13일 Sun Microsystems는 공식적으로 Java 소스를 오픈했습니다. Java의 소스 코드를 첫날부터 액세스할 수 있다는 사실은 Java가 초기에 플랫폼을 구축하는 데 도움이 된 전략이었습니다.
Java의 아버지 James Gosling은 소스 코드를 공개하려는 의도는 커뮤니티에서 보안 분석, 버그 보고, 성능 향상, 원격 사례 이해 등에 도움을 주기 위한 것이라고 말했습니다. Java에서 사용하는 원래 라이센스는 소스 코드의 내부 사용을 허용했지만 배포는 허용하지 않았습니다.
IBM은 당시 Java를 Apache Software Foundation에 기부하고 Apache 라이센스를 사용하여 배포하자고 요청했지만 Sun은 결국 GPL 라이센스에 따라 Java 소스를 오픈하기로 결정했습니다. GPL 라이센스는 파생 버전을 공개적으로 배포하도록 요구합니다. Gosling은 이를 통해 Java가 오픈 소스 커뮤니티에 더 잘 적응할 수 있을 것이라고 말했습니다. 썬은 2010년 오라클에 인수됐고, 자바도 오라클의 손에 넘어갔고, 오라클은 자바의 진화를 주도했다.
JDK 1.6 출시 이후 코드 복잡성 증가, JDK 오픈 소스, JavaFX 개발, 경제 위기 및 Sun 인수로 인해 Sun은 JDK 개발 이외의 일에 많은 자원을 투자했으며 JDK 업데이트는 출시되지 않았습니다. 앞으로 2년 동안 주요 버전의 개발 속도가 빨라질 것입니다. JDK 1.6은 현재까지 총 37개의 업데이트 버전이 출시됐다. 최신 버전은 2012년 10월 16일 출시된 자바 SE 6 업데이트 37이다.
OpenJDK는 원래 SunMicrosystems에서 Java 플랫폼용으로 구축한 JDK(Java 개발 환경)의 오픈 소스 버전이었습니다. 이는 완전히 무료이며 오픈 소스입니다. Sun Microsystems는 2006년 JavaOne 컨퍼런스에서 Java 코드를 오픈 소스로 발표하고 2009년 4월 15일 OpenJDK를 공식 출시했습니다. 오라클은 2010년 SunMicrosystem을 인수한 후 프로젝트를 인수했습니다.
Java는 출시 과정에서 openjdk와 sun/oracle JDK로 나누어집니다.
JDK와 OpenJDK의 차이점은 다음과 같이 요약할 수 있습니다.
라이센스 계약의 차이점:
openjdk는 GPL V2 프로토콜을 사용하여 릴리스되는 반면 JDK는 JRL을 사용하여 릴리스됩니다. 두 프로토콜 모두 오픈 소스이지만 사용법의 차이점은 GPL V2는 상업적 사용을 허용하는 반면 JRL은 개인적인 연구 사용만 허용한다는 것입니다.
OpenJDK에는 배포(배포) 기능이 없습니다.
배포 기능에는 브라우저 플러그인, Java Web Start 및 Java 제어판이 포함되며 이러한 기능은 Openjdk에는 없습니다.
OpenJDK 소스 코드가 불완전합니다.
이렇게 생각하기 쉽습니다. GPL 프로토콜을 채택한 Openjdk에서 sun jdk의 소스 코드 중 일부는 소유권 문제로 인해 openjdk에서 사용할 수 없습니다. JMX에서 구성 요소의 SNMP 부분에 대한 코드입니다. 따라서 열 수 없는 이러한 소스 코드는 OpenJDK를 컴파일할 때 사용할 수 있도록 플러그로 만들어집니다. 플러그를 사용하지 않도록 선택할 수도 있습니다. Icedtea는 이러한 불완전한 부분에 대해 동일한 기능을 갖춘 소스 코드(OpenJDK6)를 개발하여 OpenJDK를 더욱 완성도 있게 만들었습니다.
소스 코드의 일부가 오픈 소스 코드로 대체되었습니다:
재산권 문제로 인해 재산권이 SUN이 아닌 많은 소스 코드가 다음을 사용하여 글꼴 래스터화 엔진과 같은 동일한 기능을 가진 일부 오픈 소스 코드로 대체되었습니다. 대신 자유 유형.
openjdk에는 가장 간소화된 JDK만 포함되어 있습니다.
OpenJDK에는 Rhino Java DB JAXP와 같은 다른 소프트웨어 패키지가 포함되어 있지 않으며... 분리된 소프트웨어 패키지도 최대한 분리되어 있지만 대부분은 무료 소프트웨어입니다. . 직접 다운로드하여 가입하실 수 있습니다.
Java 상표를 사용할 수 없습니다:
openjdk가 설치된 시스템에서 "java -version"을 입력하면 openjdk가 표시되지만 Icedtea 패치를 사용하는 openjdk인 경우 java가 표시됩니다. (미확인)
요컨대, Java 시스템에는 아직 비자유 요소가 많고 소스 코드 개발이 충분히 철저하지 않습니다. Oracle이 모든 Java 커뮤니티가 바라는 JCP를 더욱 자유롭고 개방적으로 만들 수 있기를 바랍니다.
이쯤 되면 자바에서 왜 오픈소스와 클로즈드소스 사이에 논쟁이 일어나는지 기본적으로 이해가 되고, 오해가 생기는 이유도 이해가 됩니다. 개인적으로 Java는 여전히 오픈소스라고 생각하지만, 오픈소스 정도가 100%는 아닙니다.
Oracle/Sun JDK에 포함된 JVM은 HotSpotVM입니다. HotSpot VM에는 OpenJDK에 없는 기능이 매우 적고 해당 부분은 Oracle 내부 코드 베이스에 있습니다. 이러한 비공개 부분 중 어느 것도 JVM의 핵심 기능을 다루지 않습니다. 따라서 Oracle/Sun JDK와 OpenJDK는 실제로 동일한 코드 기반을 사용합니다.
Oracle 내부 직원의 관점에서 보면 OracleJDK를 구축하려면 먼저 http://hg.openjdk.java.net에서 OpenJDK를 확인하고 Oracle 내부 코드에서 비공개 코드도 확인해야 합니다. 기본 부분을 OpenJDK 코드 아래의 특정 디렉터리에 넣은 다음 빌드합니다.
Oracle JDK는 바이너리 설치 패키지만 릴리스하는 반면 OpenJDK는 소스 코드만 릴리스한다는 점은 주목할 가치가 있습니다
위 내용은 자바는 오픈소스인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!