Why didn Hannibal march on Rome during the Second Punic War?
There were 2 main reasons. Firstly, Hannibal’s army wasn’t large enough to conduct effective siege operations against the city of Rome itself.He would have needed to surround the whole city to make the siege effective,and did not have enough men for this. Secondly, much of Hannibal’s army was composed of tribesmen – Gauls, Spaniards and Numidians.These men had neither the discipline nor the skills to construct the necessary siege equipment to assault the city of Rome itself.(The Carthaginiain army in Italy did not have a siege train – siege towers,scaling ladders,catapults, and other siege equipment would had to have been constructed to attack the city of Rome).
Hannibal had neither the equipment or numbers of men necessary to lay siege to Rome. To take Rome would require a long and tight siege and Hannibal knew he would have been unable to do that. So instead, he had to rely on attempting to lure the Roman armies into open battle by pillaging the countryside of the Italian peninsula, and indeed, he performed quite well in this – the Battle of Cannae, hailed as one of the most brilliant battles of all time for Hannibal’s tactics, utterly decimated the Romans. Unfortunately for Hannibal, he could only hold out in Italy for as long as Carthage was willing, and able, to support him. Their support for him eventually waned and he had to leave Italy. The best he could have done was bring the battles closer to home to the Romans.