Java-based IDEF0 & DFD Modeler
Download and install the Oracle JDK.
In the console, navigate to the project folder and run:
./gradlew runLocal-
Clone the Repository:
git clone https://github.com/Vitaliy-Yakovchuk/ramus.git
-
Navigate to the Project Folder:
cd ramus -
Run the Application:
./gradlew runLocal
-
Open your
.bash_aliasesfile:nano ~/.bash_aliases -
Add the following alias to easily launch the application:
alias ramus='cd ~/path/to/ramus/folder/ && ./gradlew runLocal &'
-
Save the file and reload it:
source ~/.bash_aliases
-
Now, you can simply run
ramusin the terminal to launch the application.
This is a macOS‑optimized fork of the Ramus IDEF0/DFD modeling tool. It focuses on native macOS integration and packaging. Windows support is not a goal here and may not work properly.
Download: the latest macOS DMG is available in this repository’s GitHub Releases section.
License: see LICENSE in this repository (unchanged from upstream).
- macOS with developer tools (preinstalled utilities:
sips,iconutil). - JDK 21+ with
jdeps,jlink, andjpackage(full JDK, not JRE). For best results, install a standard Temurin/Oracle JDK. - Optional (icon conversion fallback):
dwebpfrom thewebppackage (e.g.,brew install webp).
Tip: This project supports local overrides without changing your shell’s JAVA_HOME.
- Build a macOS .app for quick testing
./gradlew :local-client:createMacApp
open local-client/build/mac-app/Ramus.app
- Build a standalone DMG (recommended)
./gradlew :local-client:macDmg
open dest-macos
The DMG contains a standalone app that does not require users to install Java.
Alternatively, download the latest DMG from this repository’s GitHub Releases section.
If you keep multiple JDKs, add a local file to point packaging to a specific JDK. These files are ignored by git.
- Create
gradle-local.propertiesin the repo root (example):
# Full JDK used for packaging (jdeps, jlink, jpackage)
packagingJavaHome=/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
# Disable jlink and bundle a full JDK instead (bigger DMG but simpler)
# packagingUseJlink=false
# Optional explicit module path for jlink (if you want to use modules from a different JDK)
# packagingJmodsPath=/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/jmods
Alternatively, you can set org.gradle.java.home in gradle.properties (also ignored by git) if you want Gradle itself to run on a particular JDK.
-
:local-client:createMacApp- Creates a dev
.appunderlocal-client/build/mac-app/Ramus.app. - Uses a generated
.icnsand sets Dock icon flags for a native look.
- Creates a dev
-
:local-client:macDmg- Full packaging pipeline: generates
.icns→ optionaljlinkruntime →jpackageDMG. - Outputs to
dest/macos/. - If
jlinkisn’t available, it automatically bundles the full JDK atpackagingJavaHome.
- Full packaging pipeline: generates
-
:local-client:makeIcns- Converts
packaging/macos/AppIcon.appiconsetinto a.icnsusingsips/iconutil.
- Converts
You can still run directly from sources:
./gradlew :local-client:runLocal
Note: the dev run uses your local Java installation; for the full native experience use the .app or DMG.
Contributions are very welcome—bug reports, macOS improvements, docs, and packaging tweaks. Please open issues or pull requests.
- macOS app bundle and DMG packaging via Gradle + jpackage.
- Proper Dock icon and Info.plist; icons are sourced from
packaging/macos/AppIcon.appiconsetand converted to.icnsduring build (uses macOSsips/iconutil; falls back todwebpif needed). - Uses the macOS system menu bar (
apple.laf.useScreenMenuBar=true). - macOS keyboard shortcuts use the Command key (⌘) via the platform menu shortcut mask (e.g., ⌘S, ⌘O, ⌘Z, ⌘⇧S, etc.).
- Standalone distribution: bundles a Java runtime. Optionally uses
jlinkto create a minimized runtime; falls back to bundling the full JDK ifjlinkisn’t available. - Modernized build/toolchain: project compiles for Java 17 (upstream used Java 8) and uses a recent Gradle (8.x). Packaging targets JDK 21 for the bundled runtime.


