A lightweight, cross-platform file manager with a dual-pane interface
muCommander is a lightweight, cross-platform file manager with a dual-pane interface.
It runs on any operating system with Java support (macOS, Windows, Linux, *BSD, Solaris...).
Official website: https://www.mucommander.com
There are several ways to contribute to muCommander:
If you want to get involved in muCommander or have any question or issue to discuss, you are more than welcome to join our rooms on Gitter.
If you would like to contribute code, it is required to fork the repository and submit a pull request. Within pull requests it is possible to review, discuss and improve the changes until they are ready for production.
After cloning the source code repository from GitHub, you would probably want to import the project to an Integrated Development Environment (IDE) such as Eclipse or IntelliJ.
The code repository of muCommander is comprised of a main project that contains its core functionality and several sub-projects. These projects are Gradle projects. Most of the popular IDEs today allow you to import Gradle projects out-of-the-box or via an IDE plugin. By importing the main project that is located at the root directory of the repository you will get all the required code in the IDE.
The use of Gradle wrapper significantly simplifies the build from the command line. The following commands can be invoked from the root directory of the repositoring with no further installation.
You can run the application by typing:
It is recommended that whenever you get unclear compilation error and before submitting your change you do:
./gradlew clean run
Debugging is a bit more tricky due to the use of an OSGI container. One way of doing that is by extending the launcher script (either run.bat or run.sh, depending on your operating system) with, e.g.,
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005, and then debug the application from an IDE as a remote application on host
DEBUG=1gradle enables remote debugging (see task
mucommander runOsgiconfig and click the green play button
mucommander-remote-debugconfig and click the green debug button
Connected to the target VM, address: 'localhost:5005', transport: 'socket'
Run OSGI Configuration - starting the osgi container in debug mode Remote Debug Configuration - enables remote debugging and attaches the session to IDEA
The different distributions of muCommander are based on a shadow-jar, standalone jar that contains all the required dependencies and filter their unneeded parts. The creation of the shadow-jar is done by the following command:
The creation of a DMG file for MAC OS (produced in build/distributions):
The creation of an EXE file for Windows (produced in build/launch4j):
The creation of a TGZ file for Linux/Unix (produced in build/distributions):
More packaging options are described in our wiki.