Java 7, которая выйдет в этом году, будет поддерживать это.Теперь он доступен в предварительном формате.Если этот уровень выпуска достаточен для ваших нужд, вы можете использовать его.
В противном случае вы можете использовать два разных подхода.Оба включают взаимодействие с собственными библиотеками.
Первое - использовать собственный интерфейс Java (JNI) для написания кода C, который взаимодействует с соответствующими вызовами Windows и Linux.Затем вы скомпилируете код C (это необходимо сделать для каждой операционной системы и, возможно, отдельно для 32-битных и 64-битных архитектур).Затем полученный скомпилированный код необходимо добавить в путь к библиотеке Java-программы, чтобы его можно было загрузить.Эта опция очень эффективна, но также довольно сложна.
Второй вариант - использовать Java Native Access (JNA).Это позволяет писать методы и классы Java, которые соответствуют собственным функциям и структурам.JNA делает много магии, чтобы упорядочить нативные библиотеки и ваш Java-код.Нет необходимости писать или компилировать любой C-код.Этот подход менее производительный, чем JNI, но во многих ситуациях он достаточно производительный.Я реализовал этот подход для Linux и OS X для 64-битных систем, обе из которых основаны на POSIX, поэтому они очень похожи.Я не знаю, как работают метаданные файлов Windows, но я вполне уверен, что они не должны быть намного сложнее.