I was around 11 on a trip to Japan when I learned that the Japanese people call it "Nippon" was us North Americans that gave them that name, till then I've always been wondering why in the english language have we not called places by how the natives call it themselves.
Since this question goes back to even when the romans were around and naming things (Still around today or not), that I'd find the best answear here.
My instinct says that it's easier for a country to call it's neighbers/foriegners by there own made up "name" in olden times. I mean not alot of people were in school or had jobs focused on international relations back in the day. But I would love to get a difinitive answear on this question that has bothered me for so long and why we haven't changed it.
was us North Americans that gave them that name
Why do you think everything that is not done by themselves is done by North Americans? The use of Giapan in British English dates back to 1577, it all comes from Malay Jepong, which itself comes from the endonym Nippon. E.g. https://en.wiktionary.org/wiki/Japan#English
Many, many exonyms have endonymical originals, although often misunderstood or mistranslated. E.g. calling Bharat India comes from the Indus river, Sindhu in Sanksrit, so more or less an endonym, it is just that locals did not necessary want to name the whole country after the river, but they really did call the river so.
Similarly the name for China most likely comes from the name of the Qin dynasty, again an endonym, although an endnym for the dynasty and not the whole country, Persians who imported porcelain from China called it cini, as in, "plates bought from the people who live under the Qin rulers" and this is how it stuck. As Westerners were a whole lot more familiar with this imported porcelain than with the country itself.
So there is a pattern here, people take one aspect of another country they are particularly interested in, a river, a dynasty or something, ask them how do they call it, and then associate the whole country with it.
Why they don't borrow their endonym for the country - it is not really clear if there is always a generally accepted one. It wasn't always so that everybody in a country would agree how they are called - or even that they are a country. Sometimes people don't think of themselves as a country, like Gaul did not think so before Vercingetorix, or clearly a very formal term like Holy German Roman Empire would not be something regularly used by a peasant in Bavaria - for all he cares he is just living in Bayern. For example the Latin name for Germania is a whole lot older than the Germanic tribes living there referring to themselves as one common "deutsch" folk, so this is how Germany stuck as an exonym.
Often there is no real reason to borrow the endonym - why would an Englishman call China the Middle Empire when it is not "middle" for him, "deutsch" just means "people" or "popular" (indeed a lot of endonyms just mean basically "people") etc.
hi! not discouraging other responses, but you may be interested in this section of the FAQ
and the /r/Linguistics FAQ