- Prerequisites
- Build Options
- Package Installation
- Dependencies
- Running PerlOnJava
- Database Integration
- Build Notes
- Java Library Upgrades
- Using Configure.pl
- Java 21 or higher
- Maven or Gradle
- Optional: JDBC drivers for database connectivity
The project includes a Makefile that wraps Gradle commands for a familiar build experience:
make # same as 'make build'
make build # builds the project and runs unit tests
make dev # force clean rebuild (use during active development)
make test # runs fast unit tests
make clean # cleans build artifacts
make deb # creates a Debian package (Linux only)mvn clean package./gradlew clean buildFor Debian-based systems (Ubuntu, Debian, Mint, etc.), you can create and install a .deb package:
Build the package:
make debThis creates a Debian package in build/distributions/ with:
- PerlOnJava JAR installed to
/usr/share/perlonjava/ jperlcommand installed to/usr/bin/- All dependencies bundled
- Systemwide availability
Install the package:
sudo dpkg -i build/distributions/perlonjava_*.debUsage after installation:
# jperl is now available systemwide
jperl -E 'say "Hello World"'
jperl myscript.pl
# No need for ./jperl - it's in your PATHUninstall:
sudo dpkg -r perlonjavaBenefits of Debian package:
- Clean installation and removal
- Systemwide availability (no need for
./jperl) - Automatic dependency tracking
- Integrates with system package manager
- Can be distributed to other Debian-based systems
- JUnit: For testing
- ASM: For bytecode manipulation
- ICU4J: For Unicode support
- FASTJSON v2: For JSON support
- SnakeYAML Engine: for YAML support
Unix/Linux/Mac:
./jperl -E 'print "Hello World"'
./jperl myscript.pl
CLASSPATH="jdbc-drivers/h2-2.2.224.jar" ./jperl myscript.plWindows:
jperl -E "print 'Hello World'"
jperl myscript.pl
set CLASSPATH=jdbc-drivers\h2-2.2.224.jar
jperl myscript.pl-I lib: Add library path--debug: Enable debug output--help: Show all options
- Using Configure.pl:
./Configure.pl --search mysql-connector-java- Using Java classpath (shown in platform-specific examples above)
use DBI;
my $dbh = DBI->connect("jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1");
$dbh->do("CREATE TABLE test (id INT, name VARCHAR(50))");See Database Access Guide for detailed connection examples and supported databases.
- Maven builds use
maven-shade-pluginfor creating the shaded JAR - Gradle builds use
com.github.johnrengelman.shadowplugin - Both configurations target Java 21
Maven:
mvn versions:use-latest-versions.
Gradle:
./gradlew useLatestVersions.
The Configure.pl script manages configuration settings and dependencies for PerlOnJava.
View current configuration:
./Configure.plAdd JDBC driver (search):
./Configure.pl --search mysql
make # Rebuild to include driverAdd JDBC driver (direct):
./Configure.pl --direct com.h2database:h2:2.2.224
make # Rebuild to include driverUpdate configuration:
./Configure.pl -D perlVersion=v5.42.0Upgrade all dependencies:
./Configure.pl --upgrade-h, --help- Show help message-D key=value- Set configuration value--search keyword- Search Maven Central for artifacts--direct group:artifact:version- Add dependency with Maven coordinates--verbose- Enable verbose output--upgrade- Upgrade dependencies to latest versions
- Rebuild required: After adding dependencies with
--searchor--direct, you must runmaketo download and bundle them - Alternative approach: Instead of bundling drivers, you can use CLASSPATH:
CLASSPATH=/path/to/driver.jar ./jperl script.pl
→ See Configure.pl Reference for complete documentation