MyCMD is a fully custom command prompt implemented in Java.
It mimics the behavior of Windows cmd.exe with commands like dir, cd, echo, mkdir, del, and more β plus it has its own installer.
For a complete guide detailing the syntax, arguments, and options for every command, please see the full COMMANDS.md file.
MyCMD/ β£ README.md # Project description, badges, usage β£ pom.xml # Maven build config β£ src/ β β main/ β β java/ β β com/ β β mycmd/ β β£ App.java # Main entry point (starts the shell) β β£ ShellContext.java # Stores current working dir, state β β£ Command.java # Interface for all commands β β commands/ # All custom command classes β β£ DirCommand.java β β£ CdCommand.java β β£ EchoCommand.java β β£ MkdirCommand.java β β£ RmdirCommand.java β β£ CopyCommand.java β β£ DelCommand.java β β£ TypeCommand.java β β£ ClsCommand.java β β£ HelpCommand.java β β£ ExitCommand.java β β VersionCommand.java β£ icons/ β β mycmd.ico # App/installer icon β£ scripts/ β β£ build-windows.bat # Build + package EXE + run installer script β β build-linux.sh # Build + package for Linux (deb/rpm) β£ installer/ β β mycmd.iss # Inno Setup script for Windows installer β dist/ # Output folder (auto-created after build) β£ bin/ β β MyCMD.exe # Wrapped executable (via Launch4j or jpackage) β£ lib/ β β dependencies.jar # Extra JAR dependencies (if any) β setup.exe # Generated installer (from Inno Setup)
---
## π Key Features β¨
<div align="center">
| Feature | Description |
|---------|-------------|
| β
**Windows-like Commands** | Supports `dir`, `cd`, `mkdir`, `del`, `copy`, `type`, `cls` |
| β‘ **Extensible** | Easily add new commands via Java classes |
| π₯οΈ **Executable Packaging** | Packaged into `.exe` using **Launch4j** |
| π οΈ **Installer Wizard** | Simple setup using **Inno Setup** |
| π **Cross-Platform** | Works on **Windows** and **Linux** (via `jpackage`) |
</div>
---
## π¦ Requirements
To build MyCMD you need:
- [Java JDK 17+](https://adoptium.net/)
- [Apache Maven](https://maven.apache.org/)
- [Launch4j](https://launch4j.sourceforge.net/) (for `.exe` wrapping)
- [Inno Setup](https://jrsoftware.org/isinfo.php) (for Windows installer)
*(Linux users can use `jpackage` instead of Launch4j/Inno Setup.)*
---
## π οΈ Build Instructions
Building MyCMD is simple and automated for both Windows πͺ and Linux π§ platforms
### πΉ Windows
```bash
scripts\build-windows.bat
π¦ This script will automatically:
1.π§© Build the JAR using Apache Maven
2.βοΈ Wrap it into an .exe using Launch4j
3.πͺ Generate a setup.exe installer via Inno Setup
dist/
β£ bin/MyCMD.exe
β£ lib/dependencies.jar
β setup.exe
chmod +x scripts/build-linux.sh
./scripts/build-linux.sh
This will build a .deb or .rpm package using jpackage.
After installation, run:
MyCMD
You can now use commands like:
> dir
> cd ..
> mkdir test
> echo Hello World!
> type file.txt
> del file.txt
> help
> exit
Note
There are many commands left like ls and Ping Command
Contributions are what make the open-source community such an amazing place to learn, inspire, and create! πͺ
We welcome all kinds of improvements β from fixing bugs π to adding new commands βοΈ.
- π΄ Fork the repository
- πΏ Create a new branch
git checkout -b feature/your-feature-name
π§Ύ Apache License 2.0
This project is open-source and available for anyone to use, modify, and share under the terms of the Apache License.
β¨ Attribution is appreciated but not required.
π For complete terms, check the LICENSE file.