Habitual criminal Steven Gallacher repeatedly dodged prison after being handed a string of community sentences which let him walk free from court.
Sheriff Lindsay Foulis, at Perth Sheriff Court, jailed Gallacher after expressing dismay that he had never spent time in prison.
Sheriff Foulis said: "You think the world revolves around you and everyone should do what you think. Today you are losing your liberty."
Gallacher, of Campsie Road, Perth, admitted threatening and abusive behaviour by smashing crockery and ornaments at an address in Perth, on April 4.
He admitted entering the house uninvited, pushing over Donna Freeman and attacking PC Kristen Allcoat, striking her on the body to her injury.
Mid-Scotland and Fife MSP Murdo Fraser said: "Victims of crime will be astonished that this individual, with his long history of offending, is only now being sentenced to imprisonment.
"The public require protection from persistent offenders such as this and they would expect to see criminals like him behind bars, where he is no longer a threat to the public."
Gallacher's criminal career began in 1996 and since then he has been convicted of attacking police officers, wife-beating, dangerous driving, assault and possessing drugs.