Home Bookkeeping

This application (HomeBookkeeping) is intended to be a personal/family bookkeeping app.
About one year ago I searched such application for myself but applications that been found
were too comlex ( they require too detailed expenses description up to weight of each bought portion) or non-free

Once I found an application, written by Maxim Gorbilev MoneySafe
It was fit to my needs ideally and i used it for a half of the year.
After that time I noticed that MoneySafe has bugs in chart rendering. Also I already
had some wishes for usability.

So I desided to clone MoneySafe using Java SWT/Jface. That clone must be compatible with
MoneySafe at the database level and visually.
This is my first Java application and it was written for educational purposes too.

Because the main requirement was the compatibility of my application with MoneySafe, HomeBookkeeping is
based on the same database structure and so can't be significantly changed in the future.
Migration from MoneySafe to HomeBookkeeping can be done by simple transfer of database file
database.db3 located near program executable.

Initially I decided to write one cross-platform application using Java SWT/Jface, but within a
reasonable time I couldn't figure out how to include all swt libs into my project and load one of them
at runtime.

I tried to use ANT script and swtjar as discribed here
I tried to write swtloader myself, as described in a few themes on stackoverflow and, for examle, here
I tried to edit MANIFEST but had no luck.
The most promising way, described on google, leads to starting application, that (as I understand)
load proper swt lib but can't find other libs like jface and other...

That will be beautiful if someone will help me to understand runtime class loading and classloader-classpath dependence:)

HomeBookkeeping is intended to be multilanguage.
At the settings page of the application there is a single field - language change.
After the language has changed - the application must be restarted.
Inside the application resources there are two language files - english and russian.
User can create own language files that should has extension "lang" and be located near the
program's executable.
After the new "lang" file is placed near the program - it can be selected at the settings page.
Language file must has a "lang" extension and THIS structure.

At this moment program is tested ONLY in WindowsXP x32.
I also know that sqlite_jdbc library has problems with fetching more than 2000 rows inside 64bit Windows JVM
so maybe better to install 32bit JVM even if you are using 64bit Windows.

Bugs. Of course they are. But this application was written "for myself" and I use it often,
so it is at least workable and all critical bugs will be fixed asap,
though further project development is not planned.