Our dog trainer has really helped with Charlie, who was always jumping up.
You need two people for this - one person to have the dog on the lead, the other person to greet the dog. You have the dog on a loose lead and say nothing at all. The other person comes up, with the intention of saying hello and giving a treat. If the dog starts to jump up, the person calmly steps away. You keep doing this and only reward the dog when he doesn't jump up when greeted (you could click and treat). Then you invite loads of people round and get all of them to help out with that.
The dog will quickly work out that there's only attention and reward when s/he doesn't jump up. I like that approach, because it focuses on the positive, there's no shouting, janking etc. And it works.
It's important, obviously, to be consistent, so he doesn't get rewarded (even with attention) for jumping up one time, and not another.
Silke