This Java version (Java 8) comes with full source code. Download.
If you prefer C# (C# 6.0) you can download ...
A fast version with full source code based on MPIR (see below).
Or maybe you prefer the vingate 1985 look and feel -- then use this package:
With this marvel you can compute the factorial of 100.000.000 in less than a minute -- if you want to see first how large this number is look here -- with an off-the-shelf computer vintage 2010. See also this benchmark. Observe that using MPIR as a low-level library can speed up your program considerably compared to using the higher level functions directly. For instance the above picture shows that a simple parallel implementation of the factorial function is 15% faster than the MP-factorial function.