First for getting OS,OS-Version, Architecyure, JVM version, JVM vendor, use System.getProperties().
For getting physical memory info and processor extra details use OS specific
program and run that program via (Runtime.exec) and parse and get the required lines. Here are some commands that would be of use to you.
For windows NT(Also see 'typeperf' command, specified elsewhere in this forum)
For general Unix stuff
For solaris(for getting processort info, phy. memory,etc).
For Linux

for getting Physical/swap memory)