Чи можна переглянути джерело OpenJDK в Інтернеті?


80

Чи можна переглядати вихідний код OpenJDK в Інтернеті так само, як я можу це робити з проектами SourceForge? Я ніколи раніше не користувався Меркурієм, тому відчував розгубленість.

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

Відповіді:


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

3
@Patrick: якщо ви заміните ідентифікатор набору змін на 'tip', він завжди буде працювати. Версія, на яку вона вказує, може з часом змінюватися, але вона завжди буде найсучаснішою (в якомусь сенсі). Я відповідно відредагував допис.
Том Андерсон,

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.
Трамп 2020 - Справедливість настане

@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-b02у zipформаті, url буде: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/ src / share / classes / )
  • [використання в затемненні]
  • стиснути його,
  • zip папку "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 відповідно, найпоширенішим jar є, мабуть rt.jar,
  • за бажанням, може знадобитися проект оновлення, щоб він повністю набув чинності, не впевнений, що це необхідно,
  • протестуйте: у eclipse, ctrl + shift + tпотім введіть Cancellable, виберіть sun.nio.fs.Cancellableвідповідний встановлений jre, якщо вихідний код доступний, то це добре, оскільки це джерело недоступне в jdk_home/src.zip, воно повинно бути з додаткового джерела openjdk,
  • повернути джерело назад: можна переключитися назад на використання "jdk_home / src.zip", якщо не хочете використовувати зовнішнє джерело openjdk,
  • гаразд

6

Ось спосіб переглянути сховища та переглянути лише ті біти, які ви хочете. http://hg.openjdk.java.net/ Ви про це питаєте?


1
Не зовсім. Я ходив туди ще до того, як запитав, але не зміг зорієнтуватися в інтерфейсі Mercurial. :(
Хосам Алі

На жаль, я насправді зайшов на openjdk.java.net/projects/nio і спробував знайти шлях звідти. Я ще раз перевірю це посилання. Дякую.
Хосам Алі




Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.