<p>I'm currently building a Java app that could end up being run on many different platforms, but primarily variants of Solaris, Linux and Windows.</p>

<p>Has anyone been able to successfully extract information such as the current disk space used, CPU utilisation and memory used in the underlying OS? What about just what the Java app itself is consuming?</p>

<p>Preferrably I'd like to get this information without using JNI.</p>

I think the best method out there is to implement the
SIGAR API by Hyperic
.  It works for most of the major operating systems ( darn near anything modern ) and is very easy to work with.  The developer(s) are very responsive on their forum and mailing lists.  I also like that it is
GPL2
Apache licensed
.  They provide a ton of examples in Java too!
SIGAR == System Information, Gathering And Reporting tool.