CCJ is a communication library that adds MPI-like collective operations to Java. Instead of trying to use the precise MPI syntax, CCJ focus on integrating Java's object-oriented framework. For example, CCJ uses thread groups to support Java's multithreading model and it allows any data structure (not just arrays) to be communicated. CCJ is implemented entirely in Java, so that it can be used with any Java virtual machine. This paper discusses three parallel Java applications that use collective communication technique.