c32521fd4b9082df65991e409e19de4e0c258fac
Build and Test j3270 / Build JAR & Run Tests (push) Successful in 1m6s
j3270
An x3270-aligned IBM 3270 mainframe terminal emulator written in pure Java. Designed for high compatibility with IBM z/OS, z/VM, CMS, and TSO systems over TN3270 and TN3270E.
🚀 Quick Download & Run
Latest Standalone JAR
You can download the ready-to-run executable JAR directly from the releases or CI builds:
- Download Latest Tagged Release (
j3270.jar) - Latest Nightly CI Artifacts (Download under the latest successful workflow run)
Running j3270
Requires Java 11 or higher (Java 11, 17, 21+):
# Launch interactive GUI
java -jar j3270.jar
# Connect to TLS/SSL mainframe with custom port
java -jar j3270.jar -s mainframe.example.com 992
# Or using standard x3270 L: prefix
java -jar j3270.jar L:mainframe.example.com:992
# Connect with unverified/self-signed certificate verification bypass
java -jar j3270.jar --tls --insecure mainframe.example.com 992
# Launch with custom configuration file
java -jar j3270.jar -c config.ini
# Launch directly from source runner
./run.sh
✨ Features
- TN3270 & TN3270E Protocol Support: RFC 2355 compliant state machine, negotiation, Device-Type query, and SSL/TLS encryption.
- SSL/TLS Security:
- Encrypted TN3270 over TLS connections on standard port
992or custom ports. - Interactive certificate verification prompt for self-signed or untrusted certificates with fingerprint, subject, issuer, and validity inspection.
- Optional unverified/insecure mode for testing and headless scripting.
- Encrypted TN3270 over TLS connections on standard port
- IND$FILE File Transfer: Full support for both CUT and DFT (DDM) high-speed structured field transfers with ASCII/binary translation, CRLF handling, and recfm/lrecl formatting for TSO, VM/CMS, and CICS.
- z/VM & Line-Mode Support: Proper SSCP-LU and unformatted line handling (
CP TERM CONMODE 3270supported). - APL & Graphic Escape: Comprehensive box-drawing and math symbol character rendering.
- Terminal Models:
- Model 2 (24x80)
- Model 3 (32x80)
- Model 4 (43x80)
- Model 5 (27x132)
- Zero-Dependency Core: Modular architecture separated into:
lib3270j: Reusable Java 3270 protocol, data stream parser, charset translation, and telnet state machine.j3270: Desktop Swing user interface and session management.
🛠️ Building from Source
Standalone Build (No Gradle Required)
The project includes self-contained, portable build scripts:
# Build executable JAR in 2 seconds:
sh ./build_all.sh
# Run all 31 automated unit tests in ~180ms:
sh ./test_all.sh
The resulting standalone JAR is created at build/j3270.jar.
Gradle Build (Optional)
./gradlew build
./gradlew test
🤝 Contributing
Contributions and issue reports are welcome! Please feel free to open a bug report or feature request via the Gitea issue tracker.
📜 Acknowledgements
- x3270 — Reference C implementation and protocol specifications
- Antigravity
- Claude Opus 4.6
- Gemini 3.1 Pro
Languages
Java
99%
Shell
1%