amagovpt / autenticacao.gov

Middleware Oficial de Identificação Eletrónica em Portugal - Cartão de Cidadão, da Chave Móvel Digital e Sistema de Certificação de atributos profissionais
https://www.autenticacao.gov.pt
European Union Public License 1.2
168 stars 33 forks source link

java.lang.NoClassDefFoundError PTEID_Exception #59

Closed devmiegsi closed 3 years ago

devmiegsi commented 3 years ago

Boas, estou a tentar a usar a API na ultima versão do ubuntu. Segui os passos de compilação e ficou tudo correto. Tirando o facto do pteilibj.jar não estar no usr/local/lib -> os .so estão todos, mas o jar não se encontra lá.

Capturar

package cc; import pt.gov.cartaodecidadao.*;

public class reader {

    static {

        try {
           System.loadLibrary("pteidlibj");
        }
        catch (UnsatisfiedLinkError e) {

           System.err.println("Native code library failed to load. \n" + e);
           System.exit(1);
       }
    }

    private static PTEID_ReaderContext readerContext = null;
    private static PTEID_ReaderSet readerSet = null;
    private static PTEID_EIDCard idCard = null;

    public static void main(String[] args) {

        try{
            PTEID_ReaderSet.initSDK();

            readerSet = PTEID_ReaderSet.instance();
            readerContext = readerSet.getReader();
            idCard = readerContext.getEIDCard();

            PTEID_EId eid = idCard.getID();
            String  nome = eid.getGivenName();
            String  nrCC = eid.getDocumentNumber();
            String  datebd = eid.getDateOfBirth();

        } 

        catch (PTEID_Exception e){
            System.out.println("Exception thrown: " + e);
            e.printStackTrace();
        }

        try {
            PTEID_ReaderSet.releaseSDK();
        } catch (PTEID_Exception e) {
            System.out.println("Exception when releasing SDK: " + e);
            e.printStackTrace();
        }

    }
}

`

O código é extremamente simples mas não estou a perceber porque não encontra a biblioteca em runtime. O bug é relacionado com o java ou com os meus conhecimentos de java "enferrujados"?

devmiegsi commented 3 years ago

Resolvido estava no module path em vez do class path.