you could do a while loop for 100% usage, but have it periodically sleep to reduce the overall usage. Remember that usage is a relative term, for single processor system, all processes are 100% cpu usage (while they're using the cpu) and that the values reported by the OS (20%, 40% whatever) are averages over some time interval.
> you can't in "pure" java.
Well you have windows, linux, solaris, mac, etc., and they all do things a bit differently. Java is platform independent and runs on all of these platforms, so any time Java implements something platform specific in the VM, they have to do it several times. Thus, you get limited support for such features, not to mention Java is a high level language with high level API's. What you're asking for is a very low level operation. So JNI is sometimes the only solution.