Llamada de Java para la API de Windows GetShortPathName

Me gustaría usar la función de API nativa de Windows en mi clase Java.

La función que me interesa es GetShortPathName.http://msdn.microsoft.com/en-us/library/aa364989%28VS.85%29.aspx

Intenté usar esto ...http://dolf.trieschnigg.nl/eightpointthree/eightpointthree.html pero en algunas condiciones Java se bloquea completamente cuando lo uso, por lo que no es la opción para mí.

La pregunta es: ¿Tengo que escribir código en, por ejemplo, C, hacer DLL y luego usar esa DLL en JNI / JNA? ¿O tal vez de alguna manera puedo acceder a la API del sistema de manera diferente?

Apreciaré sus comentarios. Si pudieras publicar algún código como ejemplo, te lo agradecería.

...

Encontré la respuesta usando JNA



import com.sun.jna.Native;
import com.sun.jna.platform.win32.Kernel32;

public class Utils {

    public static String GetShortPathName(String path) {
        byte[] shortt = new byte[256];

        //Call CKernel32 interface to execute GetShortPathNameA method
        int a = CKernel32.INSTANCE.GetShortPathNameA(path, shortt, 256);
        String shortPath = Native.toString(shortt);
        return shortPath;

    }

    public interface CKernel32 extends Kernel32 {

        CKernel32 INSTANCE = (CKernel32) Native.loadLibrary("kernel32", CKernel32.class);

        int GetShortPathNameA(String LongName, byte[] ShortName, int BufferCount);
    }

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta