Конечно, можно работать без интерфейса. Судя по всему, вы хотели бы создать свое приложение Java в виде консольного приложения, а затем запустить его как демон службы Windows / Linux (вы не упомянули ОС). Существуют java-сервисы-обертки, которые позволяют вам запускать свой java-код как сервис (например, этот ) или вы можете написать свой собственный.
Я рекомендую эту книгу , чтобы выучить JNI. Хотя это звучит как то, что вам нужно, на самом деле это не JNI, а интерфейс, предоставляемый через TCP или нечто подобное, что другое приложение C ++ может использовать для общения с вашим приложением. JNI не позволяет другому процессу общаться с вашим приложением, он расширяет ваш Java-код функциональностью, которая не может быть реализована в самой Java, например. вызов некоторой функции Windows API.
Edit:
Кстати, простое Java-приложение Hello World, подобное этому, является консольным приложением:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}