3

I searched for a solution to my problem but I could not find an answer.
In a client server chat application the client wants to get the server's public key which is stored in a Server.cer file.

URL resource = this.getClass().getClassLoader().getResource("Server.cer");
File file = new File(resource.toURI());
FileInputStream fileInputStream = new FileInputStream(file);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
while(bufferedInputStream.available() > 0){
    certificate = cf.generateCertificate(bufferedInputStream);
}
publicKey = certificate.getPublicKey();

This works fine when I run my class in Eclipse but when I export it as an executable jar file I get:

java.lang.IllegalArgumentException: URI is not hierarchical

Could you please help me resolve this problem because I need the executable jar file to work.

Roham Amini
  • 361
  • 3
  • 12

1 Answers1

0

I managed to fix the problem. This is how I did it.

    Certificate certificate = null;

    //Get server's public key which is stored in a file called Server.cer (RSA-1024 bit).
    InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("Server.cer");
    BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    while(bufferedInputStream.available() > 0){
        certificate = cf.generateCertificate(bufferedInputStream);
    }
    publicKey = certificate.getPublicKey();

    bufferedInputStream.close();
    inputStream.close();
Roham Amini
  • 361
  • 3
  • 12