Programs must have executable(s) in /usr/bin and be executable. They can be Java classes (using binfmt_misc) or wrappers. In any case, they must run without specific environment variables (see Policy 10.9), for instance CLASSPATH. They must respect the Policy rules for executables (for instance a manual page per executable, see Policy 13.1).
If they have their own auxiliary classes, they must be in a jar file in /usr/share/java. The name of the jar should follow the same naming conventions as for libraries.
Programs must depend on java-virtual-machine and the needed runtime environment (java1-runtime and/or java2-runtime).
There is no naming rules for programs, they are ordinary programs, from the user point of view.