I do not know Java or C++ (I do know C though), how about approching this from a different point. Instead of writing C++ like Java, how about writing a Java to C++ preprocessor.
To work it
1) write your Java code
2) run though a preproccessor
3) compile the code generated
4) run the generated executable.
The preproccessor can add in all the stuff needed to do the garbage collection etc. this way you are still writing Java, you can make any C++ helper libraries you need any way you feel like as only the preproccessor needs to know how to use them. You might be able to get external Java extensions to work as long as they are pure Java.
You could probably make this all one step too, by getting the preproccessor to run the compiller internally.