Ler versão arquivo .exe no Linux (utilizando JNA)

Estou utilizando JNA para ler a versão de um arquivo .EXE. No Windows funciona bem, consigo ler Versão do arquivo e Versão do Produto (Propriedades). Porém eu também precisava ler essas informações no Linux pois o cliente poderá verificar a versão do EXE através de um compartilhamento.
O problema é que no Linux, quando meu sistema tenta ler a versão do arquivo é gerado o erro “java.lang.UnsatisfiedLinkError: Unable to load library 'version’
Native library (linux-x86-64/libversion.so) no found in resource path….”

Já procurei informações sobre esse arquivo “libversion.so” mas não encontrei em lugar nenhum.
Alguém já enfrentou essa situação ou tem alguma solução a respeito? Se existir alguma outra forma de obter essas informações (tanto no Windows quanto no Linux) fico grato se alguém me informar.

Meu código abaixo:

 public String pegaVersaoProdutoWindows(String arquivo, Integer digVs) throws Exception {

        File fileToCheck = new File(arquivo);
        short[] rtnData = new short[digVs];

        int infoSize = Version.INSTANCE.GetFileVersionInfoSize(fileToCheck.getAbsolutePath(), null);
        Pointer buffer = Kernel32.INSTANCE.LocalAlloc(WinBase.LMEM_ZEROINIT, infoSize);

        try {
            Version.INSTANCE.GetFileVersionInfo(fileToCheck.getAbsolutePath(), 0, infoSize, buffer);
            IntByReference outputSize = new IntByReference();
            PointerByReference pointer = new PointerByReference();
            Version.INSTANCE.VerQueryValue(buffer, "\\", pointer, outputSize);
            VerRsrc.VS_FIXEDFILEINFO fileInfoStructure = new VerRsrc.VS_FIXEDFILEINFO(pointer.getValue());

            //Product version
            for(int i = 0; i < digVs;i++) {
                switch(i) {
                    case 0:
                        rtnData[0] = (short) (fileInfoStructure.dwProductVersionMS.longValue() >> 16);
                        break;
                    case 1:
                        rtnData[1] = (short) (fileInfoStructure.dwProductVersionMS.longValue() & 0xffff);
                        break;
                    case 2:
                        rtnData[2] = (short) (fileInfoStructure.dwProductVersionLS.longValue() >> 16);
                        break;
                    case 3:
                        rtnData[3] = (short) (fileInfoStructure.dwProductVersionLS.longValue() & 0xffff);
                        break;
                }
            }

            //Pega o número da versão em String
            String versao = dump(rtnData);

            return versao;

        } finally {
            Kernel32.INSTANCE.GlobalFree(buffer);
        }

    }