This is simple because Java itself already uses PKCS # 8 encoding to encode RSA private keys.
, PKCS # 8. PKCS # 8 ( , , , ).
Java 7/8 . , .
Path path = (new File("privatenopass.pkcs8")).toPath();
byte[] pkcs8Data = Files.readAllBytes(path);
KeyFactory kf = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec keyspec = new PKCS8EncodedKeySpec(pkcs8Data);
RSAPrivateKey pk = (RSAPrivateKey) kf.generatePrivate(keyspec);
Bouncy Castle PEM. , , .