jGnash is a free (no strings attached!) personal finance manager with many of the same features as commercially-available software. It was created in order to make tracking your personal finances easy, but also provides the functionality required by advanced users. jGnash is cross-platform: jGnash 2 will run on any operating system that has a working Java Runtime Environment (e.g., Linux, Mac OS X, and Microsoft Windows)
jGnash 2.x requires that the Java Platform version 8 or newer be installed. jGnash has been tested with the Oracle JVM as well as the open source OpenJDK Platform.
Most users of jGnash will want the latest version of Oracle Java Runtime Environment.
Developers will want the Java Development Kit (see build instructions below.)
To learn about the features of jGnash, visit the jGnash Website.
You can download jGnash from the jGnash Download Page.
-
Unzip all files into a directory of your choice leaving the directory structure unchanged.
Executable files are provided for Windows and UN*X users at the root of the installation directory. The jGnashFx executables will launch jGnash with the latest interface and the jGnash2 files with launch jGnash with the old legacy Java Swing interface.
Simply double click on the *.exe file of choice in Windows.
UN*X users can start jGnash with the provided Bash scripts. If they fail to launch, check your file permissions and make sure they are set to be executable or use a unzip tool that preserves file permissions.
An example for UN*X users is show below assuming you have changed to the installation directory.
./jGnashFx
If you are using the OpenJDK, enabling OpenGL acceleration can significantly improve
graphics performance. See the integrated help for use of the -opengl
option.
jGnash is not compatible with the GCJ Java installation pre-installed on older Linux distributions. You will need to install the OpenJDK or Oracle Java Platform and correctly set the default for jGnash to operate correctly.
For Mac OS X users, a minimum of Mac OS X 10.7 is required unless you want to experiment with the SoyLatte Java distribution.
-
Copy the jGnash folder to
/Applications
. -
Open AppleScript Editor.
Create the following script:
try
do shell script "/System/Library/Frameworks/JavaVM.framework/Versions/1.8.0/Home/bin/java -classpath /Applications/jGnash/lib -jar /Applications/jGnash/lib/jgnash-fx-x.jar"
end try
Save it as an Application called jGnash.app
in /Applications/jGnash
jGnash 2.x is designed to operate with Java 8.
An additional command line option --add-modules java.xml.bind
is required if you want to operate under Java 9.
An illegal reflective access Warning will be displayed on the console similar to the following. It may be ignored and should improve at a later date as the Java Ecosystem migrates to Java 9.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by javassist.util.proxy.SecurityActions (file:/home/craig/.gradle/caches/modules-2/files-2.1/org.javassist/javassist/3.20.0-GA/a9cbcdfb7e9f86fbc74d3afae65f2248bfbf82a0/javassist-3.20.0-GA.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of javassist.util.proxy.SecurityActions
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Gradle is used as the primary build system for jGnash. The Gradle Wrapper is included so that you do not need to install Gradle. The Wrapper will automatically download the necessary dependencies.
To build jGnash you’ll need the following software installed and correctly configured on your system:
-
JDK 8u71 or later.
If you are building with a recent 64 bit Linux system, you may need to enable Multilib/32 Bit support capabilities. Otherwise, the Gradle build may fail when building the windows executables.
To create the distribution zip file, start at the main directory and run:
Building on Windows
gradlew clean distZip
Building on UN*X
./gradlew clean distZip
A distributable zip file will be produced at the root of the build directory called jGnash-version-bin.zip.
The distribution now contains a version of jGnash that utilizes JavaFX for the user interface. Long term this version will replace the Java Swing based version that jGnash was first based on. The advantages of JavaFX over Swing are an improved appearance with better utilization of the systems graphics hardware including Hi-DPI systems.
The core/engine of jGnash remains the same and is shared by both the Swing and JavaFx versions. This means stability and protection of your valuable data remains the same. This also allows you to switch between versions without issue.
The advantages for jGnash is a smaller code base for the user interface, access to better components such as improved table support, HTML pages, functional animations, modern controls, etc. Experienced jGnash users will notice interface improvements. For example, try using the vertical and horizontal scroll wheels in a date picker and the collapsible transaction forms.
JDK 8u71 or later is required for the jGnashFx interface. The 8u71 release fixed several JavaFX bugs and jGnashFx is dependent on several recent API changes.
Linux users may use the jGnashFx interface if you have the Oracle release of Java installed or if you are using OpenJDK with OpenJFX 8u71 or later installed. OpenJFX 8u40 and u45 packages are generally available for most mainstream distributions, but will not work.