Java is different from most of the packages in LFS and BLFS. It is a programming language that works with files of bytecode to obtain instructions and executes them in a Java Virtual Machine (JVM). An introductory java program looks like:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello, World");
}
}
This program is saved as HelloWorld.java
. The
file name, HelloWorld, must match the class name.
It is then converted into byte code with
javac HelloWorld.java. The output file is
HelloWorld.class
. The program is executed with
java HelloWorld. This creates a JVM and runs the
code. The 'class' extension must not be specified.
Several class files can be combined into one file with the jar command. This is similar to the standard tar command. For instance, the command jar cf myjar.jar *.class will combine all class files in a directory into one jar file. These act as library files.
The JVM can search for and use classes in jar files automatically.
It uses the CLASSPATH
environment variable to search for
jar files. This is a standard list of colon-separated directory names
similar to the PATH
environment variable.
Creating a JVM from source requires a set of circular dependencies. The first thing that's needed is a set of programs called a Java Development Kit (JDK). This set of programs includes java, javac, jar, and several others. It also includes several base jar files.
To start, we set up a binary installation of the JDK created
by the BLFS editors. It is installed in the /opt
directory to allow for multiple installations, including a source based
version.
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Binary download (x86): https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-21.0.1/OpenJDK-21.0.1+12-i686-bin.tar.xz
Download MD5 sum: d36dc78d9e27298e71766b2c23b673ec
Download size (binary): 161 MB
Estimated disk space required: 314 MB
Binary download (x86_64): https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-21.0.1/OpenJDK-21.0.1+12-x86_64-bin.tar.xz
Download MD5 sum: d490971868549581475df007cae1ee6b
Download size (binary): 169 MB
Estimated disk space required: 343 MB
alsa-lib-1.2.10, Cups-2.4.7, giflib-5.2.1, and Xorg Libraries
Begin by extracting the appropriate binary tarball for your
architecture and changing to the extracted directory. Install the binary
OpenJDK with the following commands as the
root
user:
install -vdm755 /opt/OpenJDK-21.0.1-bin && mv -v * /opt/OpenJDK-21.0.1-bin && chown -R root:root /opt/OpenJDK-21.0.1-bin
The binary version is now installed. You may create a symlink to that
version by issuing, as the root
user:
ln -sfn OpenJDK-21.0.1-bin /opt/jdk
You may now proceed to Configuring the JAVA environment, where the instructions assume that the above link exists.