zabbix java gateway discards any output when starting the process and only checks whether the process is present (by pid).
unfortunately, in some cases, java prints out an error message and exits a moment later. this makes startup script think startup was successful when it actually is not. there is no information in the gateway log, console or anywhere else.
probably output should be printed to the java gateway logfile (although it might have different format ?)
for example, change system hostname to an unknown one and try to start the gateway. startup is silent (as i succeeded), pidfile is present - but gateway has not been started.