It looks like the XMP toolkit supports Java.
Overview of the XMP Toolkit: (Link to tool kit located inside of document.
I'm sure you've already been through that just thought I'd direct you there JIC.
Take care and good luck finding your solution,
the XMP SDK for JAVA only contains the XMPCore component, which is the actual data model. XMPFiles for extracting and embedding from/into files is currently only available in C/C++.
If you would like to trigger an extraction from java, you need to call the C lib from Java (for example using JNI).
Yes, I've downloaded the SDK and seen the only component in Java is the XMPCore... Will dig in the solution of calling the C library from Java, will let you know.