Iv been working on a project for a while now in java and i read somewhere that the GCJ can compile java classes into native binaries, after a quick google search it was revealed that this was true. However after reading a number of posts across the web and including here some people stated that the binaries still:
1.Required a java virtual machine to run? why?
2.Could not generate DLL files for windows or .so object files, without needing a java vm again

So i guess my question is, is this true? And if so how can something claiming to be a java to native instruction compiler still require a vm to run?

gcj is a linux only tool that isn't Java at all. it recognises only a very small subset of the Java language and core APIs.
Never use it, it's garbage.

And there's never a need to even try to turn Java class files into native executables, as there are JVMs for just about every platform under the sun.