Stop meshes coming apart when moving bones?

I’ve rigged a character in which the hands were created and independently of the body. I’ve joined them using ctrl-J but the meshes are actually join (the geometry of the faces makes it awkward). However, when I move the forearm bone in pose mode the hand goes further than the tip of the sleeve so the hand moves through the sleeve. Is there a way to fix this? I can’t seem to get the weight painting to stop it from happening.