I am trying to build syslog-ng with java and json support on Ubuntu 16.0.4.

I can’t use prepackaged version because ubuntu have decided that one must not have  both rsyslog (which is our corporate standard) and syslog-ng (which I need for its pattern matching in an application) on the same machine. Installing one package removes the other.

As well as the standard build tools I have installed these packages via apt: jsoncpp, jre and gradle.   Simply running ./configure ran through but did not find java (i.e. java and java-module were both set to no).   I added —enable java and configure terminated complaining that it could not find java.  I dug into the configure script and found that it was executing “which javac”  and “javah” both of which failed.  I changed JAVAC to “java” and the configure script then completed with both java and java module enabled.

Running make then failed 

builder@secgendev02:~/src/syslog-ng-3.17.2$ make
mkdir -p modules/java/syslog-ng-core/classes
  GEN      modules/java/syslog-ng-core/classes/org/syslog_ng/LogMessage.class
Unrecognized option: -d
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Makefile:20740: recipe for target 'modules/java/syslog-ng-core/classes/org/syslog_ng/LogMessage.class’ failed

I am guessing that the version of java the jre package installed is not compatible with the configure script.

builder@secgendev02:~/src/syslog-ng-3.17.2$ java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

I know that configure checks the java version so I am somewhat surprised…

Any Ideas on what to try next?

Russell