# System Requirements 

Apache Lucene runs on Java 8 or greater.

It is also recommended to always use the latest update version of your
Java VM, because bugs may affect Lucene. An overview of known JVM bugs
can be found on http://wiki.apache.org/lucene-java/JavaBugs

With all Java versions it is strongly recommended to not use experimental
`-XX` JVM options.

CPU, disk and memory requirements are based on the many choices made in 
implementing Lucene (document size, number of documents, and number of 
hits retrieved to name a few). The benchmarks page has some information 
related to performance on particular platforms. 

*To build Apache Lucene from source, refer to the `BUILD.txt` file in 
the distribution directory.*
