Installation
ISO8583Studio is a Kotlin Multiplatform / Compose Desktop app. Windows and macOS get native installers that bundle their own Java runtime; Linux builds from source with one Gradle command. One codebase, no runtime to install for the packaged builds.
Table of contents
Prerequisites
| Requirement | Minimum | Notes |
|---|---|---|
| Java | None for the installers · JDK 17+ to build | The .exe and .dmg bundle a runtime. Building from source needs JDK 17 or newer — Compose Multiplatform 1.8 will not configure on anything older. Temurin, OpenJDK or Oracle all work. |
| Operating System | Windows 10+, macOS 10.14+, Ubuntu 18.04+ | Any modern 64-bit desktop OS. |
| Memory | 512 MB | 2 GB recommended for load testing. |
| Disk | 100 MB | Plus space for logs and configurations. |
Building from source? Check the JDK first:
java -version# openjdk version "17.0.x" — 17 or newer is required to buildWindows
- Download the installer —
ISO8583Studio-1.0.0.exe(about 190 MB; the runtime is included). - Run it — the build is not yet code-signed, so SmartScreen will show Windows protected your PC. Choose More info → Run anyway.
- Allow networking — approve the Windows Firewall prompt so simulators can open server ports.
macOS
- Download the disk image —
ISO8583Studio-1.0.0.dmg(about 200 MB; the runtime is included). - Install — open the image and drag ISO8583Studio to Applications.
- Gatekeeper — the build is not yet notarized, so the first launch is blocked. Allow it under System Settings → Privacy & Security, or right-click the app and choose Open.
Linux
- Install a JDK 17+ — Debian/Ubuntu:
sudo apt install openjdk-17-jdk git· Fedora:sudo dnf install java-17-openjdk-devel git. - Build it — there is no prebuilt Linux package yet. Clone the repository and run
./gradlew :composeApp:packageDebfor a.deb, or./gradlew runto launch it directly — see Build from Source below. - Install the package —
sudo dpkg -i composeApp/build/compose/binaries/main/deb/*.deb.
Build from Source (Kotlin Multiplatform)
The project builds with the Gradle wrapper — no IDE required. You need JDK 17 or newer and Git; Compose Multiplatform 1.8 refuses older JDKs, and the native-installer tasks use jpackage, which arrived in JDK 14.
git clone https://github.com/hpkaushik121/Iso8583studio.gitcd Iso8583studio./gradlew build # compile + tests./gradlew run # launch the desktop appBuilding the JAR
To produce a runnable JAR from the cloned source (it needs a JDK 17+ to run), use the Compose Desktop packaging tasks:
# fat/uber JAR with all dependencies (recommended)./gradlew :composeApp:packageUberJarForCurrentOS# output: composeApp/build/compose/jars/ISO8583Studio-<os>-<arch>-1.0.14.jar# run itjava -jar composeApp/build/compose/jars/ISO8583Studio-*.jarOr build a native installer for your OS instead of a JAR:
./gradlew :composeApp:packageDistributionForCurrentOS# output: composeApp/build/compose/binaries/main/# Windows → .msi · macOS → .dmg · Linux → .debgradlew.bat instead of ./gradlew. For development, IntelliJ IDEA opens the project directly — see How to Contribute.Change the package
Packaging is declared in composeApp/build.gradle.kts, in the nativeDistributions block of compose.desktop.application.
- packageName and packageVersion: installer name and version; macOS reuses the version for
dmgPackageVersion. - targetFormats(…): currently Dmg, Msi, Deb and Exe. Add or drop formats here.
- Icons:
composeApp/resources/windows/app.ico,resources/mac/app.icnsandresources/linux/app.png. - macOS signing:
signis set to false. Set it to true and supply a Developer ID identity to ship a signed build.
Troubleshooting
| Symptom | Fix |
|---|---|
UnsupportedClassVersionError when running a source build | Your JDK is older than 17 — install a newer one and re-check java -version. |
| Gradle fails to configure | Same cause: Compose Multiplatform 1.8 requires JDK 17+. |
| "Connection refused" in simulators | Port in use or blocked by firewall — change the port in Transmission Settings. |
Next steps
Installed and running? Pick up the release notes, the development setup, or tell us what broke.