A java service lets you write and execute java code on the Integration Server.
The Service Development help at Building Java Services is a good starting point to understand more. Please feel free to reach out if you get into any issues.
Why do you want to avoid using wMPublic package services?
A rule of thumb for IS development that you’ll want to consider: avoid creating Java services unless the desired function cannot be achieved using FLOW.