St. Johnsbury (known locally as "St. J") is the shire town (county seat) of Caledonia County, Vermont, United States. The population was 7,603 at the 2010 census. St. Johnsbury is located about northwest of the Connecticut River and south of the Canada-U.S. border.