We present Jiazzi, a system that enables the construction of large-scale bi
nary components in Java. Jiazzi components can be thought of as generalizat
ions of Java packages with added support for external linking and separate
compilation. Jiazzi components are practical because they are constructed o
ut of standard Java source code. Jiazzi requires neither extensions to the
Java language nor special conventions for writing Java source code that wil
l go inside a component. Our components are expressive because Jiazzi suppo
rts cyclic component linking and mixins, which are used together in an open
class pattern that enables the modular addition of new features to existin
g classes. This paper describes Jiazzi, how it enhances Java with component
s, its implementation, and how type checking works. An implementation of Ji
azzi is available for download.