如何从文件夹resources/key中获取资源?
我是这样做的:
String Key = new String(Files.readAllBytes(Paths.get(ClassLoader.getSystemResource("key/private.pem").toURI())));
当我把项目构建到一个jar中时,它不起作用。所以我在寻找另一种方法来做这件事。你能告诉我如何获得资源吗?
private PublicKey getPublicKey() throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
String key = getPublicKeyContent().replaceAll("\\n", "")
.replace("-----BEGIN PUBLIC KEY-----", "").replace("-----END PUBLIC KEY-----", "");
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(key));
KeyFactory kf = KeyFactory.getInstance("RSA");
return kf.generatePublic(keySpec);
}
private PrivateKey getPrivateKey() throws NoSuchAlgorithmException, InvalidKeySpecException {
String key = getPrivateKeyContent().replaceAll("\\n", "")
.replace("-----BEGIN PRIVATE KEY-----", "").replace("-----END PRIVATE KEY-----", "");
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(key));
KeyFactory kf = KeyFactory.getInstance("RSA");
return kf.generatePrivate(keySpec);
}
2条答案
按热度按时间qvtsj1bj1#
试试这个使用spring framework核心和util包的util方法。
pxq42qpu2#
您应该将
/
添加到资源路径中,并使用InputStream
:请记住,当您构建
jar
文件时,resource
将被复制到jar文件的根目录下。这是来源:
这是一个
foo.jar
文件而
foo.jar
的根是/
,所以资源的完整路径是/key/private.pem
。