Wenn er keine Chance hatte Rom einzunhemen, weshalb blieb er
noch in Italien und begann eine ware Odysse durch unter italien.
Warum er Rom nicht angriff wunderte ja schon seine Generäle.
Den genauen Grund wissen wir nicht, dazu müssten wir Hannibal wohl selbst fragen, was aber aus biologischen Gründen leider nicht geht.
Vermutlich war er sich sicher, dass er Rom selbst, wenn es ernsthaft verteidigt werden würde - woran kein Zweifel bestand - mit seiner Armee nicht einnehmen würde können. Dazu war diese nach all den Schlachten, die, wenngleich siegreich, auch für ihn nicht verlustfrei waren, wohl inzwischen zu schwach. Als erfahrener Heerführer war im klar, dass zwar seine Armee in offener Feldschlacht erfahren und auch hochmotiviert war, aber eben diese beiden Qualitäten, die ihn wohl auch noch ein paar weitere Feldschlachten hätten gewinnen lassen, in einer langwierigen Belagerung weit weniger bedeutend sind. Hier käme es auf den längeren Atem und die Ausdauer, materiell wie personell, an. Und genau da hatte er, ohne Nachschub aus Karthago, ein Problem.
Seine "Odyssee" durch Italien war ja schließlich der Versuch, den Krieg wirtschaftlich-politisch zu entscheiden. Er wollte einerseits die Bundesgenossen Roms von Rom abbringen, andererseits die landwirtschaftliche Basis Italiens stören. Beides wohl in der Hoffnung, Die Position Roms ausreichend zu schwächen, um es vielleicht dennoch belagern zu können. Allerdings hätte er seine begrenzten Truppen dann komplett zu dieser Belagerung einsetzen müssen, was seine Armee versorgungstechnisch - die immer noch romtreuen Bundesgenossen im Rücken - in eine prekäre Versorgungslage gebracht hätte.
Ohne Verstärkung aus Karthago, die er aber eben nicht bekam, war der Krieg nicht zu gewinnen.
Das Scheitern erinnert ein wenig an Unternehmen Barbarossa: Zwar wurde das gegnerische Feldheer mehrmals spektakulär geschlagen, aber die gegnerische wirtschaftliche, politische und organisatorische Basis nicht zerstört, so dass der Gegner wie ein Stehaufmännchen immer wieder erstarken konnte.
Warum er trotzdem weitermachte:
Er wusste, schließlich war es nicht der erste punische Krieg, dass Rom im Endeffekt die größeren Ressourcen hatte. Deshalb musste er, um sein Heimatland zu schützen, den Krieg nach Italien tragen. Hätte er Italien verlassen, hätte Rom sich rasch erholt und seine ganze Kraft nach Karthago werfen können (was ja schließlich auch geschah). Das hätte aber zu einer unvermeidlichen Niederlage und Vernichtung Karthagos geführt. Daher musste er so lange wie möglich in Italien bleiben, selbst nachdem ein Sieg unwahrscheinlich geworden war.
Die Situation ist vergleichbar mit einem Mann, der einen senkrechten Steilhang hinabstürzt und sich auf halbem Weg an einem dürren Ast festklammern kann. Frag den mal, warum er nicht loslässt...