https://github.com/dwight-studio/jarmemu
Simple ARMv7 simulator written in Java, intended for educational purpose.
https://github.com/dwight-studio/jarmemu
arm armv7 educational java portable simulator
Last synced: 4 months ago
JSON representation
Simple ARMv7 simulator written in Java, intended for educational purpose.
- Host: GitHub
- URL: https://github.com/dwight-studio/jarmemu
- Owner: Dwight-Studio
- License: gpl-3.0
- Created: 2023-10-17T18:22:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-05T15:42:48.000Z (8 months ago)
- Last Synced: 2025-11-05T17:33:13.028Z (8 months ago)
- Topics: arm, armv7, educational, java, portable, simulator
- Language: Java
- Homepage: https://dwightstudio.fr/JArmEmu
- Size: 41.2 MB
- Stars: 13
- Watchers: 3
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- License: LICENSE
Awesome Lists containing this project
README

# JArmEmu
### Simple ARMv7 simulator written in Java, intended for educational purpose.
- [Features](#features)
- [Installation](#install)
- [From Git](#from-git)
- [Portable archive](#portable)
- [Windows](#windows)
- [FlatPaks (FlatHub)](#flatpak)
- [Fedora/Nobara](#fedora)
- [Arch Linux/Manjaro](#arch-linux)
- [Debian/Ubuntu/Pop! OS/Linux Mint/Kali Linux](#debian)
- [Nix](#nix)
- [Licence](#licence)
# Features

JArmEmu is a simple, user-friendly simulator that provides basic control and information about a simulated ARMv7
architecture.
JArmEmu is powered by an ARMv7 interpreter built *Ex Nihilo* for this project, which provides real-time syntax
highlighting, intelligent auto-completion, memory, stack and register monitoring...
You can write your program using ARMv7 instructions and commonly used GNU directives, and watch the simulator execute
it with details on any step.
> [!NOTE]
> The implemented instruction set is available directly in the simulator (Help > See instructions...).
# Install
## From Git
You can compile and run
JArmEmu directly from source by cloning this repository. The project requires the `JDK 21` and
is built using `Maven 3`.
```bash
# Clone the repository
git clone https://github.com/Dwight-Studio/JArmEmu
cd JArmEmu
```
To launch
JArmEmu, you juste need to `compile` and run the maven goal `exec:java` :
```bash
mvn compile exec:java
```
## Portable
JArmEmu is distributed in a portable archive available from
the [release page](https://github.com/Dwight-Studio/JArmEmu/releases/latest). It requires Java 21 (or newer), which is **not included in the archive**.
## Windows
[](#Windows)
[](#Windows)
[](https://community.chocolatey.org/packages/fr.dwightstudio.JArmEmu/)
You can download an installer for
JArmEmu (or the portable version) from
the [release page](https://github.com/Dwight-Studio/JArmEmu/releases/latest).
> [!IMPORTANT]
> The executables aren't signed, and can trigger a warning screen from Windows UAC (which you can simply ignore).
JArmEmu is also available on Chocolatey:
```bash
choco install jarmemu
```
## FlatPak
[](#flatpak)
[](#flatpak)
[](https://flathub.org/fr/apps/fr.dwightstudio.JArmEmu)
JArmEmu is available on [FlatHub](https://flathub.org/fr/apps/fr.dwightstudio.JArmEmu).
> [!TIP]
> You can install it using your Software Manager (Gnome Software, KDE Discover...).
You can install it using FlatPak CLI:
```bash
flatpak install flathub fr.dwightstudio.JArmEmu
```
## Fedora
[](#fedora)
[](#fedora)
[](https://copr.fedorainfracloud.org/coprs/dwight-studio/JArmEmu/package/jarmemu/)
JArmEmu is available on [Fedora Copr](https://copr.fedorainfracloud.org/coprs/dwight-studio/JArmEmu/package/jarmemu/):
```bash
sudo dnf copr enable dwight-studio/JArmEmu
sudo dnf install jarmemu
```
## Arch Linux
[](#ArchLinux)
[](#ArchLinux)
[](https://aur.archlinux.org/packages/jarmemu)
JArmEmu is available on [AUR](https://aur.archlinux.org/packages/jarmemu). Use your favorite AUR Helper (`yay` for
instance):
```bash
yay -S jarmemu
```
## Debian
[](#debian)
[](#debian)
[](#debian)
[](#debian)
[](#debian)
JArmEmu is available on the Dwight Studio repository.
> [!NOTE]
> The following command will install the Dwight Studio's repository which hosts Debian binaries for all available
> projects of the collective.
You can install it by running:
```bash
sudo sh -c "curl -sS https://deb.dwightstudio.fr/repo/gpgkeys/deb.dwightstudio.fr.pub | gpg --dearmor > /etc/apt/trusted.gpg.d/deb.dwightstudio.fr.gpg"
sudo sh -c "echo 'deb https://deb.dwightstudio.fr/repo/deb/dwightstudio-stable/any/main/prod any main' > /etc/apt/sources.list.d/repomanager-dwightstudio-stable-any-main.list"
sudo apt update && sudo apt install jarmemu
```
## Nix
[](#nix)
[](#nix)
JArmEmu is available with the [Nix](https://nixos.org/) package manager through this repository flake.
You can build/run it imperatively by running (with flake enabled):
```bash
nix build github:Dwight-Studio/jArmEmu
nix run github:Dwight-Studio/jArmEmu
```
Otherwise, use your preferred way to declaratively install the package `jarmemu` from the `github:Dwight-Studio/jArmEmu` flake as input.
## Licence
This project is managed by the
Dwight Studio collective, which is not affiliated not endorsed by Arm Limited in any sort.
This project was created by Kévin "FoxYinx" TOLLEMER and Alexandre "Deleranax" LECONTE, students at INSA Rennes
(not affiliated).
JArmEmu is distributed in open source under GPL3 (refer to the LICENCE file).