Police also affirmed that there was no sign showing that it was an attack.
Initial investigation findings found that the explosion was caused by a smoke grenade, Jakarta police chief Gatot Eddy Pramono said, adding that the case is under further investigation.
Argo Yuwono, a national police spokesman, said the explosion took place just after 7am local time.
The injured soldiers are being treated in hospital for wounds in their hands and legs, he said.