A ruffian; a hooligan or miscreant.
1930s; earliest use found in Port of Spain Gazette. From bad + John, probably originally after Bad John, alias of John Archer, a notorious habitual criminal in Trinidad in the early 20th century. Compare.
Are You Learning English? Here Are Our Top English Tips