Кстати, это легко заставить "казаться" правильным, но гораздо труднее на самом деле сделать правильно. Почему вы хотите, чтобы они работали в одном и том же процессе? Почему не та же нить?
Вы могли бы рассмотреть возможность создания моста через TCP / IP между вашим кодом C и процессом Java. Это было бы намного лучше, потому что это позволило бы избежать сюрпризов обслуживания.
Вы думаете "сюрпризы по обслуживанию, какие сюрпризы?" Ах! Сегодня вы хотите позвонить из C в Java, но завтра кто-то захочет вернуться в другую сторону. Вот где твоя проблема становится НАСТОЯЩЕЙ болезненной.
Я был здесь раньше. Примите мой совет: сделать мост TCP / IP. Это предотвратит сбой вашей Java.
-Stosh