Lasse Collin | 36d0dfc | 2011-03-30 13:59:11 +0300 | [diff] [blame] | 1 | |
Lasse Collin | 1a5f92d | 2011-08-17 21:11:40 +0300 | [diff] [blame] | 2 | XZ for Java |
| 3 | =========== |
Lasse Collin | 36d0dfc | 2011-03-30 13:59:11 +0300 | [diff] [blame] | 4 | |
| 5 | Introduction |
| 6 | |
Lasse Collin | c95e64a | 2011-07-28 10:32:50 +0300 | [diff] [blame] | 7 | This aims to be a complete implementation of XZ data compression |
Lasse Collin | 1a5f92d | 2011-08-17 21:11:40 +0300 | [diff] [blame] | 8 | in pure Java. Features: |
| 9 | - Full support for the .xz file format specification version 1.0.4 |
| 10 | - Single-threaded streamed compression and decompression |
| 11 | - Single-threaded decompression with limited random access support |
| 12 | - Raw streams (no .xz headers) for advanced users, including LZMA2 |
| 13 | with preset dictionary |
| 14 | |
| 15 | Threading is planned but it is unknown when it will be implemented. |
Lasse Collin | c95e64a | 2011-07-28 10:32:50 +0300 | [diff] [blame] | 16 | |
| 17 | For the latest source code, see the project home page: |
Lasse Collin | 36d0dfc | 2011-03-30 13:59:11 +0300 | [diff] [blame] | 18 | |
Lasse Collin | 8aa0996 | 2017-04-19 22:07:46 +0300 | [diff] [blame] | 19 | https://tukaani.org/xz/java.html |
Lasse Collin | 36d0dfc | 2011-03-30 13:59:11 +0300 | [diff] [blame] | 20 | |
Lasse Collin | 01b8f65 | 2017-12-29 17:48:33 +0200 | [diff] [blame] | 21 | The source code is compatible with Java 5 and later. |
Lasse Collin | 36d0dfc | 2011-03-30 13:59:11 +0300 | [diff] [blame] | 22 | |
| 23 | Building |
| 24 | |
Lasse Collin | c95e64a | 2011-07-28 10:32:50 +0300 | [diff] [blame] | 25 | It is recommended to use Apache Ant. Type "ant" to compile the |
| 26 | classes and create the .jar files. Type "ant doc" to build the |
| 27 | javadoc HTML documentation. Note that building the documentation |
| 28 | will download a small file named "package-list" from Oracle to |
| 29 | enable linking to the documentation of the standard Java classes. |
| 30 | |
Lasse Collin | ed4d534 | 2018-01-02 22:01:30 +0200 | [diff] [blame] | 31 | If you are using OpenJDK 9 or later, you will need to edit the |
| 32 | "sourcever = 1.5" line in the file "build.properties" before |
| 33 | running "ant". Set it to 1.6 or higher. The default value 1.5 |
| 34 | isn't supported by OpenJDK 9 or later. |
| 35 | |
Lasse Collin | c95e64a | 2011-07-28 10:32:50 +0300 | [diff] [blame] | 36 | If you cannot or don't want to use Ant, just compile all .java |
| 37 | files under the "src" directory. |
| 38 | |
| 39 | Demo programs |
| 40 | |
| 41 | You can test compression with XZEncDemo, which compresses from |
| 42 | standard input to standard output: |
| 43 | |
| 44 | java -jar build/jar/XZEncDemo.jar < foo.txt > foo.txt.xz |
Lasse Collin | 36d0dfc | 2011-03-30 13:59:11 +0300 | [diff] [blame] | 45 | |
| 46 | You can test decompression with XZDecDemo, which decompresses to |
| 47 | standard output: |
| 48 | |
Lasse Collin | c95e64a | 2011-07-28 10:32:50 +0300 | [diff] [blame] | 49 | java -jar build/jar/XZDecDemo.jar foo.txt.xz |
Lasse Collin | 36d0dfc | 2011-03-30 13:59:11 +0300 | [diff] [blame] | 50 | |
| 51 | Reporting bugs |
| 52 | |
| 53 | Report bugs to <lasse.collin@tukaani.org> or visit the IRC channel |
| 54 | #tukaani on Freenode and talk to Larhzu. |
| 55 | |