Chamada Java para a API do Windows GetShortPathName

Eu gostaria de usar a função nativa do windows api na minha classe java.

A função em que estou interessado é GetShortPathName.http://msdn.microsoft.com/pt-br/library/aa364989%28VS.85%29.aspx

Eu tentei usar issohttp://dolf.trieschnigg.nl/eightpointthree/eightpointthree.html mas em algumas condições o java trava completamente quando eu o uso, então não é a opção para mim.

A questão é Eu tenho que escrever código em, por exemplo, C, fazer DLL e, em seguida, usar essa DLL em JNI / JNA? Ou talvez eu de alguma forma possa acessar a API do sistema de maneira diferente?

Eu apreciarei seus comentários. Se você pudesse postar algum código como exemplo eu ficaria grato.

...

Eu encontrei a resposta usando o 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);
    }

}

questionAnswers(1)

yourAnswerToTheQuestion