Java JDK 소스 코드는 어디에서 찾을 수 있습니까? [닫은]


153

Java API의 메서드가 수행하는 작업을보고 싶습니다. 그래서 JDK 소스 코드를 원합니다. Linux를 다시 설치하기 전에 src.zip모든 공식 소스 코드 가 포함 된 패키지가 있었습니다 . 이 파일이 어디에 있는지 Eclipse에 알려주고 코드를 볼 수 있습니다. 하지만 이제는 더 이상 파일이 없습니다 ...

그래서 질문은 : 어디서 찾을 수 있습니까?


16
나는 항상 src.zipJDK 설치 디렉토리에서 공용 Java API를 포함 하는 파일을 찾았습니다 . 그것이 당신이 찾고있는 것입니까 (저는 주로 Windows를 사용했기 때문에 Linux 배포판에 없을 수도 있습니다).
Ash

16
JDK 소스를 검색 할 때이 질문이 Google에서 # 3이라는 것은 어리석은 일입니다. # 1 및 # 2는 소스 코드 링크가없는 Oracle 링크입니다. 저는 JDK를 설치할 때 항상이 질문을합니다. 오라클 부탁합니다.
Andrzej Rehmann 2014 년

4
src.zip은 핵심 API 전용 소스 번들입니다. Oracle의 전체 Java SE에 대해 공개적으로 사용 가능한 소스는 없으며 일부는 비공개 소스입니다. 그러나 플랫폼에 따라 100 % 소스를 사용할 수있는 OpenJDK 바이너리에 설치하여 사용할 수 있습니다. 소스의 경우-openjdk.java.net으로 이동하여 필요한 버전의 소스 저장소를 복제하십시오. 바이너리의 경우-Linux 용 IcedTea를 포함하여 일부 공급 업체에서 이러한 바이너리를 제공합니다.
이반 크릴 로프

2
@Ash, 나는 항상 설치 디렉토리에서 src.zip을 찾았습니다. 그런 다음 ./src/ 디렉토리에 압축을 풀면 모든 것이 잘되었습니다. 하지만 지금은 없습니다. 사실, JDK 1.7 추가 정보는 이 있음을 나타냅니다 한다 src.zip 존재. 그리고 없습니다. 이것은 미친 짓입니다.

2
jdk 9의 경우 jdk / lib / src.zip 아래로 이동되었습니다.
Ismail Yavuz

답변:


127

원하는 버전을 말하지 않았지만 JDK 7JDK 6 과 함께 JDK 8 소스 코드의 아카이브를 여기 에서 다운로드 할 수 있습니다 .

또한 Mercurial 저장소 ( 8 , 7 , 6)를 찾아 보거나 복제 할 수 있습니다 .


1
예; 6을 원한다고 가정하고 그 다운로드 페이지에서 무엇을 다운로드해야합니까? 큰 파일 jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? 이미 다운로드했습니다. 그러나 소스 코드는 포함되어 있지 않습니다.
Martijn Courteaux

3
@Martijn : 큰 jar 파일을 다운로드 한 다음 그 안에있는 README를 읽으셨습니까? 기본적으로 java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. 소스를 추출합니다.
Jon Skeet

2
네, 해냈습니다. 그리고 나는 당신이 쓴 것처럼 그것을 추출했습니다. 그러나 소스 jar 또는 zip이 없습니다.
Martijn Courteaux

1
현재 (2013) 장소가 이제 모든 다운로드를 위해 OTN으로 리디렉션되는 jdk7.java.net임을 추가하고 싶었습니다.
Kedar Mhaswade 2013


34

JDK가 포함 된 소스 코드가 이미있을 가능성은 그것이 어디에 있는지 찾는 문제입니다. JDK 폴더에 소스 코드가없는 경우 :

sudo apt-get install openjdk-7-source

OSX Folks, 홈브류 공식에서 검색하십시오.

우분투에서 위의 명령은 souce 파일을 / usr / lib / jvm / openjdk-7 / 아래에 놓을 것입니다.

좋은 소식은 Eclipse가 이미 당신을 데려다 줄 것이라는 것입니다 (Eclipse를 Java 소스 코드에 바인딩하는 방법) :

주황색 버튼을 따라

여기에 이미지 설명 입력 여기에 이미지 설명 입력 여기에 이미지 설명 입력


16

안타깝게도이 글을 쓰는 시점에서 자체 문서 readme에도 불구하고 Windows 버전을 다운로드 할 때 JDK 7 또는 8 설치 디렉토리에 src.zip 이 없습니다 .

참고 : 아마도 많은 사람들이 실제로 install .exe를 실행하지 않고 압축을 풀기 때문에 발생합니다. 우리 중 많은 사람들이 보안상의 이유로 Java 설치 (완전히 Windows 설치)를 실행하지 않습니다. 우리는 JDK가 잠재적 인 바이러스가 찾을 수없는 장소에 놓기를 원합니다.

그러나 창문이 (가 진정으로 무엇이든) .exe를 대한 그들의 정책은 참으로 너트입니다 그러나이 src.zip는 않습니다 리눅스에 존재의 (a .tar.gz를) 설치합니다. .tar 및 .gz를 추출하는 방법은 여러 가지가 있으며 무료 "7Zip"유틸리티를 선호합니다.

  1. Linux 64 비트 .tar.gz 다운로드
  2. 7zip을 사용하여 .tar.gz를 .tar로 압축 해제하십시오.
  3. 7zip을 사용하여 .tar를 설치 디렉토리에 추출하십시오.
  4. src.zip이 해당 설치 디렉토리에서 대기합니다.
  5. 꺼내서 원하는 곳에 두십시오.

오라클, 이건 정말 어리석은 일이 아닙니다.


3
Oracle JDK8 (최소 1.8.60)에는 Windows에서 src.zip이 있습니다. 그러나 Eclipse는 기본적으로 선택하지 않았습니다.
milletron 2015 년

@milletron, 나도 최근 Windows 릴리스에서 그것을 발견했습니다. 나는 이전에 일정 기간 동안 그들의 Windows 다운로드 이미지 제작에서 무언가 고장난 느낌이 있습니다. 아마도 라인 종단 b / w 유닉스 (LF)와 윈도우 (CRLF)의 차이와 관련이 있습니까?

이것은 Java 9에서도해야만하는 작업입니다.
Lii

11

내 우분투 에이 문제가 있습니다.

내 자바 설치에 대한 소스를 얻기 위해 필요한 것은 다음과 같습니다.

sudo apt-get install sun-java6-source 

Ubuntu 14.04에서 :E: Unable to locate package sun-java6-source
Nateowami

8

내가 현재 OSX Mountain Lion에서 사용하고있는 JDK 1.6은 src.zip어느 쪽도 함께 제공되지 않았으며 , 내가 알 수있는 한 1.6에 대해 더 이상 지원되는 OSX JDK가 없습니다.

그래서 OpenJDK 소스 (허용 된 답변 (+1)의 링크 사용)를 다운로드 한 다음 실행했습니다.

cd ~/Downloads
mkdir jdk6src
cd jdk6src
tar xf ../openjdk-6-src-b27-26_oct_2012.tar.gz
cd jdk/src/share/classes
jar cf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/src.jar *

(파일 이름과 경로는 다를 수 있습니다 ...)

이를 src.jarIDE의 적절한 Java 플랫폼과 연결하면 좋습니다.

OpenJDK 소스와 현재 실행중인 JDK 사이에는 약간의 불일치가 있습니다 (디버거에서 줄 번호가 일치하지 않음).하지만 원하는 것은 IDE가 상대적으로 가리키는 zip / jar뿐입니다. 어떤 일이 어떻게 작동하는지 이해하기 위해 코드를 들여다 봐야하는 경우는 거의 없습니다. 그러면 이것이 트릭을 수행 할 것입니다.


1
thx, 나는 Mac을 사용하는 동안 이것이 필요했습니다. 최신 OS와 소스를 얻는 방법에 대한 명확한 지침이 없습니다. (그들은 모두 소스를 포함하지 않거나 oracle에서 다운로드하는 업데이트를 다운로드하는 것에 대해 이야기하지만 모두 모호하거나 오류가 있습니다.)
dtc

1
@dtc가 말했듯이 다른 모든 명령은 오류가 있거나 부실하기 때문에 이것이 올바른 방법임을 강조하고 싶었습니다. Scala 프로젝트에서 IntelliJ 15를 사용하면 완벽하게 작동했습니다. 감사합니다 @MisterEd!
mjuarez 2015

src.jar은 완전한 소스가 아닙니다. 예를 들어, javax.net의 소스가 포함되어 있지 않습니다
Kannan은 Ramamoorthy

4

이 파일은 표준 JDK 다운로드에 포함되어 있습니다. 또한 Linux 시스템에는 저장소에 JDK가있을 수 있습니다. 내 Ubuntu Linux 파일은 다음 위치에 있습니다. /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip


아하! Java VM 및 JDK 용으로 설치 한 패키지를 게시 해 주시겠습니까? 그 폴더가 없기 때문입니다.
Martijn Courteaux

4

JDK 8에서 소스는 /src.zip에서 찾을 수 있습니다. 이제 일부 중간 릴리스에서는이 zip이 누락되었지만 다시 사용할 수 있습니다.여기에 이미지 설명 입력

설치 마법사에서도 소스를 선택했는지 확인하십시오.



2

글쎄, 나는 내 Mac에서 터미널을 열고 "echo $ JAVA_HOME"을 입력 한 다음 디렉토리를 얻고 거기에 가서 src.zip을 찾았습니다.


1

예!! 알았다!

Linux 용 sun.com에서 JDK (Java Developer Kit)를 다운로드했습니다. 안에 src.zip이있었습니다.하지만 먼저 시냅틱이있는 모든 자바 패키지를 제거했습니다.


Linux에서는 Java를 설치하기 위해 루트가 될 필요가 없습니다. 저는 항상 (10 년 이상) 제 Un * x 시스템에 루트가 아닌 사용자로 Java를 설치합니다 (그래서 apt-get / synaptic / 무엇이든 사용하지 않습니다).
SyntaxT3rr0r

1

공식 링크는 더 이상 원본 소스 코드를 제공하지 않습니다. 공식 링크와 캐주얼 Google 검색은 오픈 jdk로 당신을 방문 할 것입니다. Open jdk는 빌드 스크립트 파일이 수정되지 않는 한 Android 빌드에 문제를 일으 킵니다. 원래 패키지는 여기에서 찾을 수 있습니다.

sudo add-apt-repository "deb http://ppa.launchpad.net/ferramroberto/java/ubuntu oneiric main"

이 저장소에는 여전히 sun-java6-source 패키지가 있습니다. 크레딧 : http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.