<p>I've been reading Skype4Java (java api for skype) and noticed they use jni to access the skype client.</p>

<p>intuitively I'd assume that there already is a standard library in java that has an  OS-sensitive jni implementation to access other processes. I set up to look for one, but couldn't find it.</p>

<p>Is there such a library? if not, is there a best practice to access another process in the os, not necessarily a skype client?</p>

From Java 1.4 onwards you can use memory mapped files to exchange arbitrary information with another process. See java.nio.MappedByteBuffer for details.