Если вам нужны хуки Java-Python, вам будет гораздо лучше использовать Jython, а затем вызывать через границу таким образом.
Однако, да, можно вызвать внешнюю библиотеку из Java; но вам не нужен GCJ, чтобы сделать это. Скорее, вы можете просто вызвать экземпляр JVM в вашей среде выполнения Python, а затем вызвать для этого ваши методы.
Спецификация вызова JNI
Обычно вы хотите создать виртуальную машину при запуске, а затем вызывать ваши методы всякий раз, когда захотите:
// Do this once per session, e.g. an __init__
JNI_CreateJavaVM(&jvm, &env, &vm_args);
// When needed invoke Example.foo(int)
jclass cls =
env->FindClass("Example"); jmethodID
mid = env->GetStaticMethodID(cls,
"foo", "(I)V");
env->CallStaticVoidMethod(cls, mid,100);
Вы можете написать некоторый простой код C-оболочки, чтобы вызывать его для вас из ctypes. Однако JavaVM - это структура структуры с несколькими указателями void *, поэтому это может быть нетривиальным, если сделать это напрямую.