[GNC] Java APIs for gnucash

NH Rao nhrdls at gmail.com
Mon May 18 18:55:10 EDT 2026


Greetings John,

Thanks for pointing out the licensing issue. I completely missed the
incompatibility between Apache 2.0 and GPLv2.

I will get this sorted out and replace the LICENSE file with the GPL
COPYING and add the notice to the source files.

Regards,
Niranjan

On Mon, May 18, 2026 at 3:29 PM John Ralls <jralls at ceridwen.us> wrote:

> Impressive work.
>
> Just one minor detail: GnuCash is licensed under the GNU General Public
> License V2 or later, and one condition of that license is that any
> derivative work must also be released under that license. You’re including
> our headers and linking our libraries, so your library is a derivative
> work. The Apache License 2.0 does *not* meet the requirements of the GPL
> (though the reverse is true for GPL V3) so Apache Licensed projects can
> *not* be derivative of GPL-licensed code [1]. Please replace the LICENSE
> file in your repo with the GPL COPYING and place a comment with the GPL
> notice at the top of each source file.
>
> Regards,
> John Ralls
>
> [1] https://www.apache.org/licenses/GPL-compatibility.html
>
> > On May 18, 2026, at 13:35, NH Rao <nhrdls at gmail.com> wrote:
> >
> > Greetings,
> >
> > https://github.com/nhrdl/java-gnucash
> >
> > This started with my own need, it has been tested on only one real life
> > GNUcash datafile - mine, so if you choose to use it, please be careful
> and
> > make sure you have adequate backups.
> > For my use cases it seems to work the way I want it to work. If you are
> > comfortable with Java and want to play around, please feel free.
> >
> > I am especially looking for experience on other operating systems and
> other
> > forms of gnucash data such as databases etc. Technically it should work
> as
> > it's just a URI, but practically it might not behave. It has been only
> > tested on a platform available to me - Ubuntu 24.04 and gnucash version
> 5.5
> >
> > This library is Java binding for gnucash API. While there are multiple
> Java
> > libraries available, as far as I know, none of the libraries use the API
> > exposed by gnucash. This library uses the same technique sample python
> > scripts included with gnucash use - load the shared library and call
> > functions from the library.
> >
> > So far, I am able to achieve most of what python utilities do, may not be
> > exactly the same approach, but functionality is there.
> >
> > I'd some specific needs, some related to reports, some related to data
> > input. For the reports, I've invested in the same mutual fund in multiple
> > accounts. It was getting harder for me to keep track of total investment
> > because of my account structure. There is a utility that outputs the
> > information for a given commodity as gnucash calls it, from all the
> > accounts.
> >
> > For input, I wanted to read my paystub PDF file and create entries
> > automatically. This includes gross/net pay, taxes and deductions splits.
> > Similar story for my mortgage. Read the PDF statement and create splits
> > automatically based on information coming from the PDF.
> >
> > Lastly, updating the stock/fund prices. I found an API from Twelve data
> and
> > used it to update the prices. I've no relationship with Twelve data apart
> > from creating the API key and using the free version of API. Twelve data
> > throttles the calls, so code will notice the throttling and wait until
> > throttling timeout is done.
> >
> > While sample utilities are working, it's very hard to illustrate with
> > examples as this is real life confidential data. For PDF files, generally
> > speaking there are two parts, a part which reads data from PDF and
> another
> > part that actually creates the transaction and splits. For splits, code
> > uses a simple mapping file that maps relevant entries from PDF to account
> > GUID. These mapping files are available in code.
> >
> > Hope you also enjoy,
> >
> > Niranjan
> > _______________________________________________
> > gnucash-user mailing list
> > gnucash-user at gnucash.org
> > To update your subscription preferences or to unsubscribe:
> > https://lists.gnucash.org/mailman/listinfo/gnucash-user
> > -----
> > Please remember to CC this list on all your replies.
> > You can do this by using Reply-To-List or Reply-All.
>
>


More information about the gnucash-user mailing list