I'm using glpk-java in one of my projects. It provides a JNI to GLPK, a free LP/MIP solver. To use it under different platforms, you need different shared libraries (libglpk.so under Linux, libglpk.dylib under Mac OS X, glpk.dll under Windows) which is fully understandable. In addition, a java library is needed: glpk-java.jar. It's created as part of the build process.
I was wondering why this JAR file (which only contains .class files) is different under different platforms? I.e., I cannot use the same glpk-java.jar under Linux and Mac OS X which means that I cannot put this file under revision control.