In a statement, the army said its chief investigator, Major-General Gershon HaCohen, determined: "It was clear that the majority of the cluster munitions were fired at open and uninhabited areas, areas from which Hezbollah forces operated and in which no civilians were present."
It said cluster bombs were fired at residential areas only "as an immediate defence response to rocket attacks by Hezbollah" and that Israeli troops did everything possible to minimise civilian casualties.
Whenever firing cluster bombs, Israeli forces were "respecting the laws of armed conflict .... and preserving the ethical values" of the Israeli military, the statement said.
"The use of this weaponry was legal once it was determined that, in order to prevent rocket fire on to Israel, its use was a concrete military necessity," the statement added.
The conclusions were passed on to the military's advocate general, Brigadier-General Avihai Mendelblit, who accepted the recommendation and decided not to press charges. The investigation was launched following the war.
In Beirut, a Lebanese government official rejected the Israeli military prosecutors' decision, saying Israel's use of cluster bombs has been condemned by the whole world.
"The Israeli decision indicates that there is no difference between the judicial authority and political authority in Israel. They all work to commit and cover up crimes which are against humanity," the official told The Associated Press, speaking on condition of anonymity in line with government regulations.
The United Nations and human rights groups have accused Israel of dropping about four million cluster bombs during its 34-day war against Hezbollah.
They say as many as one million bombs failed to explode and now endanger civilians.
More than 30 people have been killed by cluster bomb and land mine explosions in Lebanon since the 2006 summer war.
The conflict erupted on July 12, 2006, when Hezbollah men attacked an Israeli border patrol, killing three soldiers and capturing two.
Amnesty International has criticised Israel for bombing civilian areas and using cluster bombs during the fighting.
It has also criticised Hezbollah for firing nearly 4,000 rockets at Israeli cities and towns.