foundationdb/bindings/java
sfc-gh-tclinkenbeard 94a65865d9 Merge remote-tracking branch 'origin/master' into fix-clang-warnings 2021-07-28 12:29:27 -07:00
..
src Merge pull request #5211 from hfu5/repeat-m 2021-07-27 18:57:22 -07:00
.clang-format New Unit and Integration Tests, and associated infrastructure. 2021-03-01 09:11:45 -06:00
CMakeLists.txt Merge pull request #5127 from vishesh/cherrypick 2021-07-13 09:14:20 -07:00
JavaWorkload.cpp Fix most delete-non-virtual-dtor clang warnings 2021-07-21 23:32:44 -07:00
README.md Corrects spelling mistakes in various markdown files. 2020-06-28 21:30:34 -07:00
fdb-java-style.xml spaces to tabs 2018-04-09 19:03:47 -07:00
fdbJNI.cpp Upgrade api version from 700 to 710 2021-05-05 21:15:00 -07:00
pom.xml.in Restore pom.xml.in 2020-09-30 12:34:35 -06:00
suppressions.xml added a style guide ; fixed errors found from the style guide ; updated tests to use java 8 closures 2017-12-13 16:16:31 -08:00

README.md

FoundationDB logo

FoundationDB is a distributed database designed to handle large volumes of structured data across clusters of commodity servers. It organizes data as an ordered key-value store and employs ACID transactions for all operations. It is especially well-suited for read/write workloads but also has excellent performance for write-intensive workloads. Users interact with the database using API language binding.

To learn more about FoundationDB, visit foundationdb.org

FoundationDB Java Bindings

In order to build the java bindings, JDK >= 8 has to be installed. CMake will try to find a JDK installation, if it can find one it will automatically build the java bindings.

If you have Java installed but cmake fails to find them, set the JAVA_HOMEenvironment variable.

Fat Jar

By default, the generated jar file will depend on an installed libfdb_java (provided with the generated RPM/DEB file on Linux). However, users usually find a Jar-file that contains this library more convenient. This is also what you will get if you download the jar file from Maven.

This file can be generated by compiling the packages target. For example with make, you can run:

make packages

Multi-Platform Jar-File

If you want to create a jar file that can run on more than one supported architecture (the official one supports MacOS, Linux, and Windows), you can do that by executing the following steps:

  1. Create a directory called lib somewhere on your file system.
  2. Create a subdirectory for each additional platform you want to support (windows for windows, osx for MacOS, and linux for Linux).
  3. Under each of those create a subdirectory with the name of the architecture (currently only amd64 is supported - on MacOS this has to be called x86_64 - amd64 on all others).
  4. Set the cmake variable FAT_JAR_BINARIES to this lib directory. For example, if you created this directory structure under /foo/bar, the corresponding cmake command would be:
cmake -DFAT_JAR_BINARIES=/foo/bar/lib <PATH_TO_FDB_SOURCE>

After executing building the packages (with make packages or the packages target in Visual Studio) you will find a jar-file in the packages directory in your build directory.