XZ for Java
===========

Introduction

    This aims to be a complete implementation of XZ data compression
    in pure Java. Features:
      - Full support for the .xz file format specification version 1.0.4
      - Single-threaded streamed compression and decompression
      - Single-threaded decompression with limited random access support
      - Raw streams (no .xz headers) for advanced users, including LZMA2
        with preset dictionary

    Threading is planned but it is unknown when it will be implemented.

    For the latest source code, see the project home page:

        https://tukaani.org/xz/java.html

    The source code is compatible with Java 5 and later.

Building

    It is recommended to use Apache Ant. Type "ant" to compile the
    classes and create the .jar files. Type "ant doc" to build the
    javadoc HTML documentation. Note that building the documentation
    will download a small file named "package-list" from Oracle to
    enable linking to the documentation of the standard Java classes.

    If you are using OpenJDK 9 or later, you will need to edit the
    "sourcever = 1.5" line in the file "build.properties" before
    running "ant". Set it to 1.6 or higher. The default value 1.5
    isn't supported by OpenJDK 9 or later.

    If you cannot or don't want to use Ant, just compile all .java
    files under the "src" directory.

Demo programs

    You can test compression with XZEncDemo, which compresses from
    standard input to standard output:

        java -jar build/jar/XZEncDemo.jar < foo.txt > foo.txt.xz

    You can test decompression with XZDecDemo, which decompresses to
    standard output:

        java -jar build/jar/XZDecDemo.jar foo.txt.xz

Reporting bugs

    Report bugs to <lasse.collin@tukaani.org> or visit the IRC channel
    #tukaani on Freenode and talk to Larhzu.