Quick start:
1) Supposed that kamailio home folder is '/opt/kamailio' (I'll use a term '<KAM_HOME>')
2) mkdir <KAM_HOME>/java (I'll use a term <KAM_JAVA_HOME>)
3) copy kamailio.jar to <KAM_JAVA_HOME>
4) copy Kamailio.class to <KAM_JAVA_HOME>
5) add to kamailio configuration file:

loadmodule "app_java.so"
modparam("app_java", "class_name", "Kamailio")
modparam("app_java", "child_init_method", "child_init")
modparam("app_java", "java_options", "-Djava.compiler=NONE -Djava.class.path=<KAM_HOME>/lib/kamailio/modules:<KAM_JAVA_HOME>:<KAM_JAVA_HOME>/kamailio.jar  -verbose:gc,jni")

# This parameter forces execution a kamailio comnmand with java native method KamExec.
# Note: this is an untested feature, may cause (but may not) a memory leaks if used from embedded languages.
modparam("app_java", "force_cmd_exec", 1);

Rebulding java stuff:

For re-building kamailio.jar see: BUILD_JAR.TXT