Directory Layout
This section describes most of directories used for Java packaging. Each directory is named in RPM macro form, which shows how it should be used in RPM spec files. Symbolic name is followed by usual macro expansion (i.e. physical directory location in the file system) and short description.
%{_javadir}
—/usr/share/java
-
Directory that holds all JAR files that do not contain or use native code and do not depend on a particular Java standard version. JAR files can either be placed directly in this directory or one of its subdirectories. Often packages create their own subdirectories there, in this case subdirectory name should match package name.
%{_jnidir}
—/usr/lib/java
-
Directory where architecture-specific JAR files are installed. In particular JAR files containing or using native code (Java Native Interface, JNI) should be installed.
%{_javadocdir}
—/usr/share/javadoc
-
Root directory where all Java API documentation (Javadoc) is installed. Each source package usually creates a single subdirectory containing aggregated Javadocs for all binary packages it produces.
%{_mavenpomdir}
—/usr/share/maven-poms
-
Directory where Project Object Model (POM) files used by Apache Maven are installed. Each POM must have name that strictly corresponds to JAR file in
%{_javadir}
or%{_jnidir}
. %{_ivyxmldir}
—/usr/share/ivy-xmls
-
Directory where
ivy.xml
files used by Apache Ivy are installed. Each XML must have name that strictly corresponds to JAR file in%{_javadir}
or%{_jnidir}
.
%{_jvmdir}
—/usr/lib/jvm
-
Root directory where different Java Virtual Machines (JVM) are installed. Each JVM creates a subdirectory, possibly with several alternative names implemented with symbolic links. Directories prefixed with
java
contain Java Development Kit (JDK), while directories which names start withjre
hold Java Runtime Environment (JRE). %{_jvmsysconfdir}
—/etc/jvm
%{_jvmcommonsysconfdir}
—/etc/jvm-common
-
Directories containing configuration files for Java Virtual Machines (JVM).
%{_jvmprivdir}
—/usr/lib/jvm-private
%{_jvmlibdir}
—/usr/lib/jvm
%{_jvmdatadir}
—/usr/share/jvm
%{_jvmcommonlibdir}
—/usr/lib/jvm-common
%{_jvmcommondatadir}
—/usr/share/jvm-common
-
Directories containing implementation files of Java Virtual Machines (JVM). Describing them in detail is out of scope for this document. Purpose of each directory is commented briefly in
macros.jpackage
file in/etc/rpm
. More detailed description can be found in JPackage policy. %{_javaconfdir}
—/etc/java
-
Directory containing Java configuration files. In particular it contains main Java configuration file —
java.conf
.