Инструменты и примеры ориентированы на C / C ++, потому что NPAPI - это C API. Нет никакого способа сделать плагин NPAPI исключительно на Java.
Если бы вы действительно хотели, вы, вероятно, могли бы написать промежуточный слой на C, используя JNI, но это означает, что вам нужно, чтобы ваш плагин запускал JVM. Если бы ваш плагин работал в браузере, который не запускает плагины вне процесса, вы могли бы запустить две JVM в одном процессе, что может плохо закончиться. И рисование прямо через мост станет кошмаром, по крайней мере, для Mac.
Прежде чем пытаться пойти по этому пути, вы должны спросить себя, почему, если ваша цель - запустить код Java в браузере, вы не просто используете плагин Java.