Можно ли просмотреть исходный код OpenJDK в Интернете?

80

Можно ли просматривать исходный код OpenJDK в Интернете, как я могу это делать с проектами SourceForge? Раньше я никогда не использовал Mercury, поэтому я был в замешательстве.

(Примечание: я не хочу загружать исходный код. Я просто хочу просмотреть его в Интернете, чтобы увидеть, как реализованы некоторые методы.)

Хосам Али
источник

Ответы:

94

OpenJDK теперь на GitHub: https://git.openjdk.java.net/jdk

Это большой проект, но вы найдете реализации основных классов в jdk / src / java.base / share / classes .

Например , вы можете найти реализацию java.util.List здесь .


Если вам нужно просмотреть более старые версии, вам все равно нужно использовать старый интерфейс Mercurial .

Интерфейс Mercurial может сбивать с толку, если вы к нему не привыкли, а поскольку это большой проект, может быть сложно найти то, что вы ищете.

Вот пример:

Чтобы найти реализацию JDK6 java.util.List, выберите «jdk6», «jdk», выберите «Обзор». Затем перейдите к src / share / classes / java / util / List.java.

Вы должны оказаться на http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/src/share/classes/java/util/List.java.

Расмус Фабер
источник
2
Для всех, кто пытается это сделать, номер ветки по умолчанию изменится. Итак, описанная процедура верна, только не удивляйтесь, если ссылка не сработает.
Патрик,
5
Если вам нужна версия JDK7, она здесь: hg.openjdk.java.net/jdk7/jdk7/jdk/file/tip/src/share/classes/…
user102008 01
3
@Patrick: если вы замените идентификатор набора изменений на «подсказку», он всегда будет работать. Версия, на которую он указывает, может со временем измениться, но она всегда будет самой последней (в некотором смысле). Я отредактировал сообщение соответствующим образом.
Том Андерсон
4
Что означает «ворота» в названии репо?
finnw
2
Теперь, если я хочу увидеть собственный код, реализующий собственные методы, где я могу их найти?
Ustaman Sangat
8

Последнюю версию исходного кода библиотеки классов Java для JDK 8 OpenJDK можно найти здесь: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/classes/

Абдул
источник
Это не последний URL, который содержит jdk8uпоследний, нет jdk8.
user218867
@EricWang, да - спасибо, что заметили! Я обновил свой устаревший ответ.
Абдул
7

Вот основной шаг , чтобы получить последнюю или любую выпущенную версию из Openjdk 8(или любого существующего Java - версия) исходный код, и использовать их в Eclipse.

Шаги :

  • [просмотреть источник]
  • Откройте URL-адрес для jdk, например http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
  • щелкнуть tags
  • выберите правильный тег, например jdk8u73-b02
  • затем щелкните browse,
  • затем перейдите в папку src/share/classes,
  • [источник загрузки]
  • затем щелкните один из bz2/ zip/ gz, чтобы загрузить источник в соответствующем сжатом формате ( например, для формата jdk8u73-b02in zipURL-адрес будет: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/ SRC / доля / классы / )
  • [использовать в затмении]
  • распаковать это,
  • заархивируйте папку "classes /", сделайте "classes /" корневым каталогом ZIP-файла (например, сначала cd jdk-2ab13901d6f1/src/share/, затем zip -r openjdk_8u73_b2_src.zip classes/)
  • переместите созданный zip-файл в нужное место, он останется там некоторое время (например mv openjdk_8u73_b2_src.zip /media/Eric/software/java/jdk/openjdk/openjdk8u73-b02/source/)
  • в eclipse укажите исходный файл для банок установленной jre, можно указать исходное вложение для каждой банки установленной jre, соответственно, наиболее распространенной банкой, вероятно rt.jar, является ,
  • при желании может потребоваться обновить проект, чтобы он полностью вступил в силу, не уверен, что это необходимо,
  • проверьте это: в eclipse, ctrl + shift + tзатем введите Cancellable, выберите sun.nio.fs.Cancellableсоответствующий установленный jre, если исходный код доступен, тогда это хорошо, потому что этот источник недоступен jdk_home/src.zip, он должен быть из дополнительного источника openjdk,
  • переключить источник обратно: можно переключиться обратно на использование "jdk_home / src.zip", если не хотите использовать внешний источник openjdk,
  • Хорошо
user218867
источник
6

Вот способ просматривать репозитории и выбирать только те фрагменты, которые вам нужны. http://hg.openjdk.java.net/ Это то, о чем вы спрашиваете?

jwpfox
источник
1
Не совсем. Я пошел туда раньше, чем спросил, но не смог разобраться в интерфейсе Mercurial. :(
Хосам Али
Извините, я на самом деле зашел на openjdk.java.net/projects/nio и попытался найти путь оттуда. Я еще раз проверю эту ссылку. Благодарю.
Хосам Али,