Welcome to the forum.
Take a look at the topic on my site about JavaHelp. I think
it deals with many of the points you are raising.
Help others by clicking Correct Answer if the question is answered. Found the answer elsewhere? Share it here. "Upvote" is for useful posts.