오늘 아침, 나는 무언가를 설치하려고 시도했고 다음과 같은 진술을 보았습니다.
The program 'javac' can be found in the following packages:
* default-jdk
* ecj
* gcj-4.6-jdk
* gcj-4.7-jdk
* openjdk-7-jdk
* openjdk-6-jdk
Try: sudo apt-get install <selected package>
default-jdk, ecj, gcj와 openjdk의 차이점은 무엇입니까?
미리 감사드립니다.
답변
기본 jre
이것은 openjdk-7-jre (따라서 기본적으로 openjdk-7-jre 와 동일 ) 및 default-jre-headless에 의존하는 간단한 패키지입니다 . OpenJDK 7 JRE 인 “표준 Java 또는 Java 호환 런타임”을 설치합니다.
이 패키지는 Java 런타임 또는 i386 아키텍처에 권장되는 Java 호환 런타임 (i386의 경우 openjdk-7-jre)을 가리 킵니다.
ecj
이것이 “독립형 Eclipse Java 컴파일러”입니다. 독립형 패키지 이므로 Eclipse를 설치하지 않습니다 (아래의 종속성 링크 참조). 여기에는 “Eclipse의 일부로 배포되는 Eclipse JDT 컴파일러의 독립형 버전”이 포함되어 있으며 Java 1.3에서 1.7까지 호환됩니다.
이 패키지는 Eclipse JDT 컴파일러의 독립형 버전을 제공하며 Eclipse의 일부로 배포됩니다. JCK (Java Compatibility Kit)를 통과하고 Java 1.3, 1.4, 1.5, 1.6 및 1.7과 호환됩니다.
gcj-4.6-jdk
(gcj-4.7-jdk는 동일하지만 Java 7의 경우)
Java 바이트 코드 및 소스 파일을 기본적으로 컴파일하기위한 GCC 컴파일러의 프론트 엔드입니다.
GCJ는 Java ™ 소스 및 바이트 코드 파일을 기본적으로 컴파일 할 수있는 GCC 컴파일러의 프론트 엔드입니다. 컴파일러는 클래스 파일을 생성 할 수도 있습니다. 이 패키지에는 클래스 경로의 다른 Java 개발 도구가 포함되어 있습니다.
패키지에는 래퍼 스크립트 및 심볼릭 링크 모음이 포함되어 있습니다. GCJ 툴 세트에 Java-SDK와 유사한 인터페이스를 제공하기위한 것입니다.
폐쇄 형 소스 Oracle Java 컴파일러에 대한 개방형 소스 대안이었습니다. 그것은 현재 대부분 구식이며 구식 (업데이트되지 않은) 것으로 보입니다. 아래 링크 (특히 GCJ 홈페이지의 마지막 업데이트)를 참조하십시오.
GNU의 Java 컴파일러 (GCJ)가 죽었습니까?
-gnu.org의 스택 오버플로 GCJ 홈페이지 (업데이트 : 링크는 사라졌지 만 GCJ 위키는 여전히 사용 가능
openjdk-6-jdk
(openjdk-7-jdk는 동일하지만 Java 7의 경우)
Java 플랫폼의 오픈 소스 버전입니다.
로부터 위키 :
OpenJDK 프로젝트의 주요 목표는 Java SE 플랫폼 (6 및 7)의 오픈 소스 구현을 생성하는 것입니다. 이것은 Ubuntu가 사용하는 기본 Java 버전이며 설치가 가장 쉽습니다.
패키지 요약 :
OpenJDK는 Java 프로그래밍 언어를 사용하여 애플리케이션, 애플릿 및 구성 요소를 빌드하기위한 개발 환경입니다.
패키지는 IcedTea 빌드 지원 및 IcedTea 프로젝트의 패치를 사용하여 빌드됩니다.
또한 귀하의 질문에 Oracle Java (기본 저장소가 아니기 때문에)에 언급되지 않았습니다. 이는 완전성을 위해 아래에 나열됩니다.
Oracle-java7-installer
( Web Up8 PPA의 패키지 이름 , Oracle에서 .tar.gz로 배포)
Oracle (이전의 Sun)에 의한 Java의 비공개 소스 ‘공식’구현. 라이센스 문제로 인해 공식 리포지토리에서 호스팅되지 않습니다. Web Up8에서 다운로드하여 설치하는 스크립트로 제공되었습니다.
답변
나는 같은 문제가 있었다. 내가 찾은 것은 그들이 서로 다릅니다.
모두 default-jdk
와 openjdk
더 있습니다 유사한 그들이 같은 자바 API 코드를 가지고있다. 그러나 목표 플랫폼 에는 차이가 있습니다.
openjdk : 가장 안정적인 것입니다. 그것은 모든 플랫폼을 위해 설계되었습니다 . 기본적으로 오픈 소스 플랫폼을 대상으로 합니다.
default-jdk : 안정적이지 않습니다 . 특정 대상 플랫폼을 목표로 설계되었습니다 . 기본적으로 폐쇄 형 플랫폼을 대상으로 합니다 (나중에 오픈 소스에서 사용 가능함).
그러나 다른 것들은 완전히 다르다 : 그들은 단지 컴파일러 일 뿐이다 . 처음에는 Java를 오픈 소스로 사용할 수 없었기 때문에 왔습니다. Eclipse와 같은 것들을 위해 cetain 컴파일러 만 출시되었습니다.
gcj -jdk : (Java 용 GNU 컴파일러). GNU에서 Java 용 컴파일러 입니다 . (Java에서 사용)
ecj : (Eclipse Java Compiler) Eclipse에서 사용하는 Java 컴파일러입니다.
이 ecj는 Java Evolutionary Computation Toolkit 인 ECJ가 아닙니다.