The primary reason is because there were many Germanic tribes with which the other nations came into contact with directly. This may actually be because of the position in Central Europe - i.e. the contact happened on all sides so on each side the peoples devise their own name instead of adopting a loanword from their neighbours from which they heard about the Germans.
English - Germany - refers to Germanic tribes in general
Spanish/French - Alemania/Alemagne - refers to the Germanic tribe of Alamans (southern tribe, conquered by Franks)
German/Swedish - Deutschland/Tyskland - comes from the Germanic word Teuta/people, the way they called themselves (hence also the word Dutch or Italian Tedesco for Germans; in other languages it may refer to the tribe of Teutons
Czech/Slavic languages - Německo - EDIT: following the comment above from @jknappen, this one is actually tricky. The prevalent hypothesis is that the word comes from němý, meaning "mute" or "dumb", i.e. not speaking the language of the Slavs and thus being foreign; however apparently there is another hypothesis, which seems to be more plausible, tracing the word to the Germanic tribe of Nemetes. This would be consistent with the way other languages acquired the word, furthermore I do not believe that Slavic languages have other demonyms derived in a similar way to němý > Němec. On the other hand the tribe of Nemetes resided in Palatinate, so not exactly neighbours to Slavs.
Finnish - Sakksa - comes from the Germanic tribe of Saxons (northern tribe)