Converting a PKCS#1 encoded RSA private key to PKCS#8 that's consumable by vanilla Java is possible using Bouncy Castle's bcprov library.
Since the difference between PKCS#1 and PKCS#8 is simply the leading PrivateKeyAlgorithmIdentifier, we can supplement that to get PKCS#8:
byte[] pkcs1Encoded = ...;
AlgorithmIdentifier algId = new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, DERNull.INSTANCE);
PrivateKeyInfo privateKeyInfo = new PrivateKeyInfo(algId, ASN1Sequence.getInstance(pkcs1Encoded));
byte[] pkcs8Encoded = privateKeyInfo.getEncoded();
This is then consumable by vanilla Java:
java.security.spec.KeySpec spec = new java.security.spec.PKCS8EncodedKeySpec(pkcs8Encoded);
java.security.KeyFactory.getInstance("RSA").generatePrivate(spec);
However, if you're using Bouncy Castle anyway, you can use their provider and you don't need to explicitly convert PKCS#1 to PKCS#8 since their KeyFactorySpi can consume a PKCS8EncodedKeySpec
with a PKCS#1 shoved into it.
e.g.:
java.security.spec.KeySpec spec = new java.security.spec.PKCS8EncodedKeySpec(pkcs1Encoded);
java.security.KeyFactory.getInstance("RSA", new BouncyCastleProvider()).generatePrivate(spec);
The Bouncy Castle provider can also be registered globally:
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
...
java.security.spec.KeySpec spec = new java.security.spec.PKCS8EncodedKeySpec(pkcs1Encoded);
java.security.KeyFactory.getInstance("RSA").generatePrivate(spec);