The pljava-packaging
subproject builds a single jar
file that contains the files (including the API, implementation, and examples jar
files, native code shared object, and PostgreSQL extension control files) that must be unpacked into a PostgreSQL installation so PL/Java can be used. These files could have been wrapped in a tar
or zip
format instead, but any site where PL/Java will be used necessarily has Java installed, and therefore support for the jar
format, so it is an obvious choice.
The resulting jar
can be simply extracted using the jar
tool, and the files moved to the proper locations, or it can be run with java -jar
. It contains two extra .class
files to give it a very simple self-extracting behavior: it will run pg_config
to learn where PostgreSQL is installed, and extract PL/Java’s files into the correct locations. See Installing PL/Java for the details.
If the file is simply extracted using the jar
tool, those two added class files will also be extracted, and can be deleted; they are not needed for PL/Java’s operation.
jshell
as a testing environmentThe added classes supply some additional methods, unused during a simple installation with java -jar
, but accessible from Java’s JShell scripting tool if it is launched with this jar
on its classpath. That allows jshell
to serve as an environment for scripting tests of PL/Java in a running PostgreSQL instance, with capabilities similar to (and modeled on) the PostgresNode Perl module distributed with PostgreSQL.
See this introduction and the javadoc for the Node class for details.