Jag is a Java library for numerical optimization of geophysical problems. It shares the fundamental class hierarchy with HCL, a C++ library. We found writing Java easier than writing C++. Java freed us from garbage collection and pointer arithmetic and gave us multiple inheritance of interfaces. During the development we guided our design decisions on a small set of research scenarios. We are confident Jag will excel in prototyping solutions to geophysical inversion problems. Furthermore, we are at the verge of delivering Jag results wrapped in reproducible documents on the World Wide Web. Unfortunately, Java's current performance is inferior to even C++, which might restrict Jag to small- and medium-sized research projects.