Alcune cose sono rintracciabili da system-property Java (es. sul S.O.), altre cose come il numero di processori o sul heap-space le trovi dalla classe java.lang.Runtime.
Ci sono anche le classi del "management" (package java.lang.management) come RuntimeMXBean e OperatingSystemMXBean che forniscono svariate informazioni.
Se necessiti di info su hardware più specifico (es. per dire, quante porte USB ci sono), no con il solo framework standard non ci sono queste informazioni. Serve la invocazione di codice "nativo" o comunque l'uso di librerie Java che in qualche modo usano codice nativo e magari lo fanno multi-piattaforma.