Где найти исходный код Java JDK? [закрыто]

153

Я хотел бы посмотреть, что делает метод в Java API. Поэтому я хочу исходный код JDK. Перед переустановкой Linux у меня был src.zipпакет со всем официальным исходным кодом. Мне просто нужно было сказать Eclipse, где находится этот файл, и я смог увидеть код. Но теперь у меня нет файла больше ...

Итак, вопрос: где я могу найти это?

Мартейн Курто
источник
16
Я всегда находил src.zipфайл, который содержит общедоступный API Java в каталоге установки JDK. Это то, что вы ищете (я в основном использовал Windows, поэтому, возможно, в дистрибутиве Linux его нет).
Пепел
16
Это смешно, что этот вопрос № 3 в Google при поиске источника JDK. # 1 и # 2 - ссылки Oracle, которые НЕ имеют ссылок на исходный код. Я всегда прохожу этот вопрос при установке JDK. Оракул, пожалуйста.
Анджей Реманн,
4
src.zip - это исходный пакет только для основного API. Не существует общедоступных источников для всей Java SE от Oracle, некоторые части являются закрытыми. Однако, в зависимости от платформы, вы можете установить и использовать двоичный файл OpenJDK со 100% доступными источниками. Для источников - зайдите на openjdk.java.net и клонируйте хранилище источников для нужной вам версии. Для двоичных файлов - несколько поставщиков предоставляют такие двоичные файлы, включая IcedTea для Linux.
Иван Крылов
1
@Hoto, я использую Java с 1996 года, и я пытаюсь найти оракул src.zip для JDK7. Это невероятно глупо. Где это? Это никогда не было так сложно. Обратите внимание, я не хочу OpenJDK.
2
@ Ash, я всегда находил src.zip в каталоге установки. Затем вы должны извлечь его в каталог ./src/, и все будет хорошо. Но его сейчас нет. ВЕДЬ, то JDK 1.7 ридми указывает на то, что должно быть src.zip присутствует. И нет. Это сводит с ума.

Ответы:

128

Вы не сказали, какую версию вы хотите, но архив исходного кода JDK 8 можно скачать здесь , вместе с JDK 7 и JDK 6 .

Дополнительно вы можете просматривать или клонировать репозитории Mercurial: 8 , 7 , 6 .

Джон Скит
источник
1
Да; скажем, я хочу 6, а затем на этой странице загрузки, что мне делать, чтобы скачать? Большой файл jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? Я уже скачал это. Но не содержит исходный код.
Мартин Курто
3
@Martijn: Вы пытались загрузить большой файл jar и затем прочитать README внутри него? В основном вы просто запускаете его java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Это будет извлекать источник.
Джон Скит
2
Да я сделал это. И я извлек это, как ты написал. Но в нем нет исходного jar или zip.
Мартин Курто
1
Просто хотел добавить, что текущим (2013) местом сейчас является jdk7.java.net, который перенаправляет на OTN для любых загрузок.
Кедар Мхасвад
3
Для 1.7 есть также sourceforge.net/projects/jdk7src
Джейсон С
32

Скорее всего, вы уже получили исходный код с JDK, это вопрос поиска, где он находится. В случае, если папка JDK не содержит исходный код:

sudo apt-get install openjdk-7-source

OSX Folks, поиск в доморощенных формулах.

В Ubuntu указанная выше команда поместит ваш файл souce в: / usr / lib / jvm / openjdk-7 /

Хорошая новость заключается в том, что Eclipse уже доставит вас туда (Как связать Eclipse с исходным кодом Java):

Следуйте за оранжевыми кнопками

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

amertkara
источник
16

К сожалению, на момент написания этой статьи, несмотря на их собственное чтение документации, в каталогах установки JDK 7 или 8 при загрузке версии для Windows нет src.zip .

Примечание: возможно, это происходит потому, что многие из нас на самом деле не запускают установочный .exe, а извлекают его. Многие из нас не запускают Java-установку (полноценную установку Windows) по соображениям безопасности ... мы просто хотим, чтобы JDK убрал путь, где потенциальные вирусы не смогут его найти.

Но их политика в отношении окна .exe (независимо от того, что действительно есть) действительно орехи, ОДНАКО , то src.zip НЕ существует в Linux установить (а .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) имел для меня src.zip в Windows. Затмение не подняло это по умолчанию как бы то ни было.
Миллетрон
@milletron, я тоже заметил это в недавнем выпуске Windows. У меня такое ощущение, что что-то сломалось в их окнах загрузки изображений за какой-то период времени ранее. Возможно, связано с разницей в окончании строки ч / б Unix (LF) и Windows (CRLF)?
Это то, что я должен был сделать и для Java 9.
Lii
11

У меня была эта проблема с моей Ubuntu.

Все, что мне нужно было сделать, чтобы получить источники для моего Java-инсталляции:

sudo apt-get install sun-java6-source 
Xorty
источник
На Ubuntu 14.04:E: Unable to locate package sun-java6-source
Nateowami
8

JDK 1.6, который я сейчас использую на OSX Mountain Lion, также не поставляется с src.zip, и, насколько я могу судить, больше не поддерживается OSX JDK для 1.6.

Поэтому я скачал исходный код 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.jarс соответствующей платформой Java в вашей среде IDE, и все будет хорошо.

Существуют некоторые расхождения между исходным кодом OpenJDK и JDK, который я в данный момент использую (номера строк не совпадают в отладчике, например), но если все, что вам нужно, это zip / jar, на который будет указывать ваша IDE для относительно В некоторых случаях вам нужно взглянуть на какой-то код, чтобы понять, как что-то работает, тогда это должно сработать.

мистер
источник
1
спасибо, мне это нужно было при использовании Mac. Там нет четких инструкций относительно последней ОС и как получить исходный код. (все они говорят о загрузке обновлений, которые не включают в себя источник или загрузку из oracle, но это все неопределенно или ошибочно так или иначе)
dtc
1
Просто хотел подчеркнуть, что это правильный способ сделать это, потому что, как сказал @dtc, все остальные инструкции там ошибочны или устарели. Сделал это с IntelliJ 15 в проекте Scala, он работал отлично. Спасибо @MisterEd!
mjuarez
src.jar не является полным источником. Например, он не содержит источник javax.net
Kannan Ramamoorthy
4

Этот файл содержится в стандартной загрузке JDK . Также ваша система Linux, вероятно, имеет JDK в хранилище. В моем Ubuntu Linux файл находится здесь: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip

vbezhenar
источник
Ага! Можете ли вы опубликовать, какие пакеты вы установили для вашей Java VM и JDK, пожалуйста. Потому что у меня нет этой папки.
Мартин Курто
4

В JDK 8 источник можно найти в /src.zip. Теперь в некоторых промежуточных выпусках этот zip отсутствовал, но опять же он доступен.введите описание изображения здесь

Убедитесь, что вы также выбрали источник в мастере установки.

dvsakgec
источник
2

Итак, я открыл терминал на своем Mac и набрал: "echo $ JAVA_HOME", затем я получил каталог, пошел туда и нашел src.zip

petery
источник
1

Да!! Понял!

Я загрузил Java Developer Kit (JDK) с сайта sun.com для Linux. Был src.zip. Но сначала я удалил все пакеты Java с помощью synaptic.

Мартейн Курто
источник
обратите внимание, что под Linux на самом деле нет необходимости быть пользователем root для установки Java. Я всегда (более десяти лет) устанавливаю Java как пользователь без полномочий root в моих системах Un * x (поэтому нет, я не использую apt-get / synaptic / что угодно).
СинтаксисT3rr0r
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/install-sun-java-6-with-apt-get-in.html

Джитендра Кулкарни
источник