Java 프리 / 오픈 소스입니까?


33

2006 년 11 월 13 일 Sun은 GNU 일반 공중 사용 허가서 (GPL)의 조건에 따라 많은 Java를 무료 및 오픈 소스 소프트웨어 (FOSS)로 출시했습니다. 2007 년 5 월 8 일, Sun 은 저작권을 보유하지 않은 코드의 일부를 제외하고 Java의 모든 핵심 코드를 무료 소프트웨어 / 오픈 소스 배포 조건에 따라 사용할 수있게했습니다 .

OpenJDK (Open Java Development Kit)는 Java 프로그래밍 언어의 무료 오픈 소스 구현입니다. Sun Microsystems가 2006 년에 시작한 노력의 결과입니다. 구현은 연결 예외를 제외하고 GNU GPL (GNU General Public License)에 따라 라이센스가 부여되었습니다.

  • Java가 공개 언어가 아니거나 언론의 자유가 아니라고 말하는 사람들이 여전히있는 이유는 무엇입니까?
  • 뭔가 빠졌습니까?
  • Java는 여전히 독점적입니까?


Sun JVM 구현 또는 기술 (바이트 코드) 만 보호되지만 모든 핵심 라이브러리 (java.xy)는 무료입니다. 따라서 누구나 다른 바이트 코드 사양과 VM을 만드는 경우 기존 라이브러리를 무료로 사용해야합니다. 죄송합니다. Google에서 Dalvik을 사용했습니다.
ern0

답변:


37

문제는 무언가 "자바"를 호출하기 위해서는 자바 사양에 맞는 인증을 받아야한다는 것입니다.

이 인증을 받기위한 전제 조건 중 하나는 테스트 스위트 인 Java 기술 호환성 키트 (TCK)를 통해 JVM을 실행하는 것 입니다. 이 테스트 스위트는 공개 소스가 아닙니다.

따라서 매우 Java와 같은 방식으로 작동하고 완전히 오픈 소스 인 JVM을 구축 할 수 있지만 "Java JVM"이라고 부르려면 공개 소스가 아닌 라이센스로 인증 제품군을 구매해야합니다. 많은 오픈 소스 옹호자들에게 이것은 완전한 비 스타터입니다.


7
이것이 바로 완벽하고 독립적 인 JVM 구현 인 Apache Harmony가 중지 된 이유 중 하나입니다 . Sun / Oracle이 이런 식으로 행동하고 여전히 이런 식으로 행동한다는 것은 부끄러운 일입니다. 구글이 한 일 ( "거의 카피"자바)은 아마도 이것의 직접적인 결과 일 것이다.
Joachim Sauer

1
또한 테스트 스위트는 Java Platform TCK (Java 관련 기술에 대한 다른 TCK도 있음)입니다.
Joachim Sauer

4
또한 성공적인 JVM을 구축하면 Oracle 은 저작권 위반 및 특허 위반에 대해 소송을 제기 할 수 있습니다 . 그들이 안드로이드를 통해 구글을 고소한 것처럼.
MarkJ

2
명명법이 오픈 소스를 부르는 것과 관련이 있습니까? 나만의 브라우저를 만들어서 firefox라고 부를 수도 없습니다. 나는 "자바"라는 용어의 의미는 무엇입니까? 언어 사양, jvm 구현, 그리고 그것을 비공개라고 부르는 사람은 ...
johannes

@johannes-pedants와 nitpickers의 오픈 소스 홈에 오신 것을 환영합니다! 오픈 소스 커뮤니티의 많은 사람들에게 이러한 구별이 중요합니다. 하모니 프로젝트를 포기한 아파치 증인들 Java Like 환경을 사용하여보다 실질적으로 구부러진 다른 사람들에게는 모든 Android 기기의 핵심 인 Dalvik VM과 같이 "충분히 좋습니다".
James Anderson

15

사용할 답변 을 제거하기 전에이 답변 을 읽어야 합니다. 주요 답변은 다음과 같습니다.

Java 7에 대해서는 JDK7과 OpenJDK7이 거의 동일한 코드 기반을 갖습니다 .

공지 사항은 거의 내가 강조했다.

해당 답변과 연결된 기사에서 :

[…] 그러나 우리가 여전히 구식 폐쇄 소스 코드를 사용하는 공개 소스 대체가있는 코드가 있습니다. 이것은 주로 글꼴 및 그래픽 래스터 화입니다. 구식 폐쇄 소스 래스터 화 코드는 방해를 받으면서 10 년 이상의 버그 수정 및 미세 조정 등을 수행했으며, 제품화 된 JDK 빌드에서 해당 코드를 대체하기위한 오픈 소스 대체를 위해서는 빠르고 안정적이어야합니다. 기존의 폐쇄 코드로 좋은 품질.

또한 Java FAQ에서 :

JDK (Java Development Kit)는 상용 프로그래밍에 무료로 다운로드하여 사용할 수 있지만 재배포 할 수는 없습니다 .

그래서, 열려 있지 소스 . 거의.

또한 완전히 오픈 소스 였더라도 개발 모델과 거버넌스 는 그렇지 않을 것입니다. 그러나 라이센스 문제는 아닙니다.


1
"무료로 다운로드하여 사용하지만 재배포 할 수 없음"은 소프트웨어가 "무료 소프트웨어가 아님"을 의미하지만 여전히 "오픈 소스"일 수 있습니다. 오픈 소스는 단순히 소스 코드에 액세스 할 수 있음을 의미합니다. 자유 소프트웨어 (FSF 및 기타에 의해 정의 된)는 또한 재배포 할 권리가 필요합니다.
CVn

6
@ MichaelKjörling OSI 정의에는 반드시 재배포 권한이 필요합니다.
luiscubal

1

1997 년 Sun Microsystems는 ECMA에 접근하여 Java를 공식화했지만 곧 프로세스에서 제외되었습니다. Java 표준은 실제로 Java Community Process를 통해 제어됩니다. .

2006 년에 대부분의 Java는 Sun Microsystems에서 GPL에 따라 릴리스되었지만 현재 공식 구현은 Oracle이 소유하고 있습니다.

Java에는 ECMA, ISO / IEC, ANSI 또는 기타 타사 표준 조직에서 인정하는 공식 표준화가 없기 때문에 Oracle 구현은 사실상의 표준입니다. 그러나 Java 용 GNU 컴파일러, GNU 클래스 경로, IcedTea-Web 등과 같은 대체 구현이 있습니다.


7
-1 : Java 7부터 공식 참조 구현은 GPL의 OpenJDK입니다.
Michael Borgwardt

2
위 언급 한 바와 같이 자바에 대한 이야기, 당신은 얻을 것이다 -1 :( 오픈 JDK는 Java.com에 오픈 소스하지만 구현은 BCL이있다 여기 . 첫째, 아파치 하모니 대 우리의 정책에 변화가 없습니다. OCTLA 무료로 할 수있는 프로그램입니다 GPL에 따라 라이센스가 부여 된 OpenJDK 파생 구현에 대한 TCK에 대한 액세스는 해당 목적으로 만 사용됩니다. 둘째, Oracle 구현 (java.com 또는 java.oracle.com에있는 것)은 BCL 라이센스에만 유지됩니다. 완전히 명확하게하기 위해, 아래 GPL 오픈 JDK 소스 코드 남아 있습니다.
사 야드 Deyargaroo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.