I spent weeks on a very similar problem. With the help of DMGregory, I finally solved it!
First you find the spawn position for the bullet (wherever you want). Then you find the destination for the bullet (calculate where the player will be...let me know if you need help with this part).
Then you cheer DMGregory's name for his insanely awesome awesomeness. Read How can I launch a GameObject at a target if I am given everything except for its launch angle?, DMGregory's answer, and the answer linked in his answer.
I know you are in Java, but you can take a look at my C# version for reference. A simpler version is also my answer to my question linked in your question above. If you have any questions on moving this to Java, lemme know.
The math is crazy here. Good luck!