In addition, some methods require special support from the JVM (e.g. The Java runtime environment as provided by OpenJDK consists of the HotSpot JVM combined with class libraries (which are largely bundled up into rt.jar).Īs Java is a portable environment, anything that requires a call into the operating system is ultimately handled by a native method. Understanding the HotSpot runtime environment For many users on Unix-based systems, a build is now as simple as installing a compiler and a “bootstrap JDK”, and then running the three commands:įor more detail on building your own OpenJDK and getting started with hacking it, the AdoptOpenJDK programme (founded by the London Java Community) is a great place to start - it’s a community of almost 100 grassroots developers working on such projects as warnings cleanup, small bug fixes and compatibility testing of OpenJDK 8 with major open-source projects. This project, known as “build-dev”, is now complete and is the standard way for building OpenJDK. Oracle recently kicked off a project to do a complete overhaul of the OpenJDK and simplified the build infrastructure. There are also other repos that are potentially less important or interesting to most developers, covering things like corba, jaxp and jaxws. Mostly Java and C code - not as easy to get into as the jdk code, but should be accessible to most developers. We’ll discuss some good paths into it in more detail later on.įor people interested in compilers and tool development, this is where the language and platform tools can be found. It is quite advanced, and can be a bit daunting to start with if you’re not a hardcore C/C++ developer. The HotSpot VM - this is C/C++ and assembly code (with some Java-based VM dev tools). The classes of the JDK are in jdk/src/share/classes This is a great starting point for getting into the OpenJDK source code. These are mostly Java (with some C code for native methods). There are several major repositories for the JDK source code that you should be familiar with: So it is fairly common to find classes in the internals that are for example still not generified, and which use raw types throughout. In particular, the source has not always had up-to-date Java language features applied throughout. The JDK source is solid, well-reviewed and well-tested but consummately approachable. Developers quite often think that the JDK source must be awe inspiring and unapproachable after all it’s the core of the platform. This will populate the rest of the project, and clone all of the files needed to actually build OpenJDK.īefore we delve into a full discussion of the source code it’s important to say: “Don’t be afraid of the platform source code”. Next, you should run the get_source.sh script, which was pulled down as part of the initial clone. rwxr-xr-x 1 boxcat staff 1367 14 May 12:54 get_source.shĭrwxr-xr-x 14 boxcat staff 476 14 May 12:55 hotspotĭrwxr-xr-x 19 boxcat staff 646 14 May 12:54 jaxpĭrwxr-xr-x 19 boxcat staff 646 14 May 12:55 jaxwsĭrwxr-xr-x 13 boxcat staff 442 16 May 16:01 jdkĭrwxr-xr-x 13 boxcat staff 442 14 May 12:55 langtoolsĭrwxr-xr-x 18 boxcat staff 612 14 May 12:54 makeĭrwxr-xr-x 3 boxcat staff 102 14 May 12:54 test rw-r-r- 1 boxcat staff 1503 14 May 12:54 ASSEMBLY_EXCEPTION After the initial clone, the local repo will look like this:
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |