This paper investigates the design and implementation of mobile computations in Java. We discuss various issues encountered while building a Java library that allows active objects to migrate transparently from site to site, while still being able to communicate with each other. Several optimizations are introduced, and a set of benchmarks provides valuable figures about the cost of migration in Java: basic cost of migration with and without remote classloading, migration vs. standard remote method invocation in a typical information retrieval application. Our conclusion is that mobile computations are a viable alternative to remote method invocation for a large domain of Java applications that includes Web-based application.