# System Requirements 

Apache Lucene runs on Java 8 or greater.

For HiDPI graphics on Windows/Linux, Java 11 or greater is recommended to run the bundled GUI application Luke.

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.*
