You are using the correct SDK, as '2016 R2' is the most stable SDK available for face recognition tasks.
It is not recommended by Intel to use Java, as the web component of the R2 RealSense SDK and the SDKs before it has a potential security vulnerability in it. I believe that the web component will still work in R2 despite this warning by Intel - you should just be aware of the potential security issue if you continue to use Java in the RealSense SDK.
Someone else once had the problem with getting null from QueryExpressions() in Java when using FaceExpressions. Unfortunately a solution was not offered in that case.
I managed to dig up a page in the official RealSense docs for expression detection that has a Java script to compare your own code to.