GAP
GAP Link
This program will allow you to programmatically access GAP from within a Java program. Of course it needs a proper GAP installation. If you want to be able to access a remotely running GAP you will need to GAP Service project mentioned below instead.
GAP Phrasebook
If you want to use OpenMath while communicating with GAP this is what you need. Note that the current version of the phrasebook assumes you will be using a remotely running GAP.
GAP Service
This program allows you to start a GAP process listening on a socket so that you can remotely call it. Of course this program requires you to have your local installation of GAP that will be exported on a socket.
Note that this program has not been created to run in an open network environment!