Jack was never supposed to be a 'hero.' Nor was he supposed to be a 'villain.'

He was supporting his starving family during a famine. They were the 'have nots'. The giant was the 'haves.' He stole for the sake of his family. The giant wanted his property back, and fully intended to eat any trespassers he found. Jack then acted in self defense. Is Jack a thief? Yes. But he stole for the sake of those he loved, not out of his own greed.