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_aliases
file: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
ramus
in 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):
dwebp
from thewebp
package (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.properties
in 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
.app
underlocal-client/build/mac-app/Ramus.app
. - Uses a generated
.icns
and sets Dock icon flags for a native look.
- Creates a dev
-
:local-client:macDmg
- Full packaging pipeline: generates
.icns
→ optionaljlink
runtime →jpackage
DMG. - Outputs to
dest/macos/
. - If
jlink
isn’t available, it automatically bundles the full JDK atpackagingJavaHome
.
- Full packaging pipeline: generates
-
:local-client:makeIcns
- Converts
packaging/macos/AppIcon.appiconset
into a.icns
usingsips
/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.appiconset
and converted to.icns
during build (uses macOSsips
/iconutil
; falls back todwebp
if 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
jlink
to create a minimized runtime; falls back to bundling the full JDK ifjlink
isn’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.