Я новичок в изучении Java.
У меня проблемы с поиском пути к файлу
readPublicKeyFromFile("C:\Users\myname\workspace\MyProject\WebContent\WEB-INF\Config\My_Public.key");
для одного из моих методов:
public byte[] encryptData(String data) throws IOException {
byte[] dataToEncrypt = data.getBytes();
byte[] encryptedData = null;
try
{
PublicKey pubKey = readPublicKeyFromFile("C:\Users\myname\workspace\MyProject\WebContent\WEB-INF\Config\My_Public.key");
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
encryptedData = cipher.doFinal(dataToEncrypt);
System.out.println("Encrypted Data: " + encryptedData);
}
catch (IOException | NoSuchAlgorithmException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException | NoSuchPaddingException e)
{
e.printStackTrace();
}
System.out.println("--ENCRYPTION COMPLETED--");
return encryptedData;
}
Файл My_Public.key
хранится в C:\Users\myname\workspace\MyProject\WebContent\WEB-INF\Config\My_Public.key
в моей компьютерной системе и в моей иерархии Eclipse Project выглядит следующим образом:
> MyProject
> WebContent
> WEB-INF
> Config
> My_Public.key
> META-INF
Это отлично работает , если я использую относительный путь "C:/Users/myname/workspace/MyProject/WebContent/WEB-INF/Config/My_Public.key
.
Но я не хочу использовать относительный путь C:/Users/myname/...
, поскольку он не будет работать, когда я загружаю свое веб-приложение на Java в Интернете.
Я пытаюсь использовать какой-нибудь путь, например:
readPublicKeyFromFile(getServletContext().getRealPath("/WebContent/WEB-INF/Config/My_Public.key"));
Но это дает мне эту ошибку:
java.io.FileNotFoundException: WebContent \ WEB-INF \ Config \ My_Public.key
(Система не может найти указанный путь)
Как я могу прочитать из моего файла:
> MyProject
> WebContent
> WEB-INF
> Config
> My_Public.key //How can I read from this file in the correct path?
> META-INF