Is there a CRC library that enables the user not only detect errors but also correct them? I'm looking for a C/C++ or Java library, ideally open-source.
I believe that CRCs can only detect errors, not correct them. That's certainly true of the most common implementation. You want some kind of error correction technique, not a CRC. I'm not aware of any libraries for doing this, but they must be easy enough to find once you know what you're looking for.
I don't think CRC is used often for error correction, however if you want to check and repair sets of files you can always try par2, which is often used on usenet. You can find a lot of documentation and implementations on the internet, for example a win32 library.
You should specify more about the data that you're working with. Are you streaming data or storing? How noisy is the transmission?
The best technical solution about Error Correction is called turbocode. See http://en.wikipedia.org/wiki/Turbo_code for more information about that.
But I'm afraid you won't find much free implementations of it.
If you really want a free one, give a try at http://rscode.sourceforge.net/