Question

Is it possible to browse the source code of OpenJDK online, just like I can do with SourceForge's projects? I never used Mercury before, so I felt confused.

(Note: I don't want to download the source. I just want to browse it online, to see how some methods are implemented.)

Was it helpful?

Solution

Use http://hg.openjdk.java.net/ as duncan suggested.

The Mercurial interface there is quite confusing if you are not used to it, and since this is a large project, it can be hard to find what you are looking for.

Here is an example:

To find the JDK6 implementation java.util.List, select "jdk6", "jdk", select browse. Then browse to src/share/classes/java/util/List.java.

You should end up at http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/tip/src/share/classes/java/util/List.java

OTHER TIPS

The latest JDK 8 OpenJDK Java Class Library source code can be found here: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/classes/

Here is the basic step to get latest or any released version of Openjdk 8 (or any existing java version) source code, and use them in Eclipse.

Steps:

  • [browse source]
  • Open url for jdk, e.g http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/
  • click tags
  • choose proper tag, e.g jdk8u73-b02
  • then click browse,
  • then browse into folder src/share/classes,
  • [download source]
  • then click one of bz2 / zip / gz, to download source in relevant compressed format, (e.g for jdk8u73-b02 in zip format, the url will be: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/2ab13901d6f1.zip/src/share/classes/)
  • [use in eclipse]
  • uncompress it,
  • zip the folder "classes/", make "classes/" as the root dir of .zip file, (e.g first cd jdk-2ab13901d6f1/src/share/, then zip -r openjdk_8u73_b2_src.zip classes/)
  • move the created zip file to proper location, it will stay there for a while, (e.g mv openjdk_8u73_b2_src.zip /media/Eric/software/java/jdk/openjdk/openjdk8u73-b02/source/)
  • in eclipse, specify source file for jars of installed jre, could specify the source attachment for each jar of installed jre respectively, the most common jar is probably rt.jar,
  • optionally, might need refresh project to make it totally take effect, not sure is that necessary,
  • test it: in eclipse, ctrl + shift + t, then input Cancellable, select the sun.nio.fs.Cancellable of corresponding installed jre, if the source code is available, then it's good, because this source is not available in jdk_home/src.zip, it must be from the additional openjdk source,
  • switch source back: could switch back to use "jdk_home/src.zip", if don't want to use the external openjdk source,
  • ok

Here's a way to browse the repositories and look at just the bits you want. http://hg.openjdk.java.net/ Is that what you are asking?

Append a "/file" to the root URLs to view the browser like this:

Grepcode.com is great for similar things - not only OpenJDK sources, with searching in classes/methods and links between classes directly in highlighted code:

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java/net/Socket.java

Surely http://hg.openjdk.java.net is one good option. The other equally good source is zGrepCode https://zgrepcode.com/java/openjdk/ . It has both Open JDK and Oracle java versions.

As mentioned in the other answers, the source code repository is at https://hg.openjdk.java.net

However, the OpenJDK team mirrors some of the projects on GitHub: https://github.com/openjdk

Including the latest Java version project (https://hg.openjdk.java.net/jdk/jdk): https://github.com/openjdk/jdk

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top