The Arrow binary format is implemented with Flatbuffers specification files (*.fbs in the top-level format directory). The flatc binary is used to generate source files for various implementation languages.
The Java build does the generation as part of every build. However, these languages have _flatc-_generated files under source control:
Java can do this as well, removing the build dependency on flatc (currently provided by an unofficial Maven artifact, not available under Windows). The Java build doc can be updated to reflect this change and document how to generate and check in files when the binary format changes.