blob: a96e3f398ad0fe30bb657b6c4034cf21552be705 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" data-content_root="" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Building Arrow Java &#8212; Apache Arrow v17.0.0.dev59</title>
<script data-cfasync="false">
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
document.documentElement.dataset.theme = localStorage.getItem("theme") || "light";
</script>
<!-- Loaded before other Sphinx assets -->
<link href="../../_static/styles/theme.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/styles/bootstrap.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/styles/pydata-sphinx-theme.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/vendor/fontawesome/6.5.1/css/all.min.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.woff2" />
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
<link rel="stylesheet" type="text/css" href="../../_static/theme_overrides.css" />
<!-- Pre-loaded scripts that we'll load fully later -->
<link rel="preload" as="script" href="../../_static/scripts/bootstrap.js?digest=8d27b9dea8ad943066ae" />
<link rel="preload" as="script" href="../../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae" />
<script src="../../_static/vendor/fontawesome/6.5.1/js/all.min.js?digest=8d27b9dea8ad943066ae"></script>
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/sphinx_highlight.js"></script>
<script src="../../_static/clipboard.min.js"></script>
<script src="../../_static/copybutton.js"></script>
<script src="../../_static/design-tabs.js"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'developers/java/building';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.15.2';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = '/docs/_static/versions.json';
DOCUMENTATION_OPTIONS.theme_switcher_version_match = 'dev/';
DOCUMENTATION_OPTIONS.show_version_warning_banner = true;
</script>
<link rel="canonical" href="https://arrow.apache.org/docs/developers/java/building.html" />
<link rel="icon" href="../../_static/favicon.ico"/>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Development Guidelines" href="development.html" />
<link rel="prev" title="Java Development" href="index.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '20']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="">
<a id="pst-skip-link" class="skip-link" href="#main-content">Skip to main content</a>
<div id="pst-scroll-pixel-helper"></div>
<button type="button" class="btn rounded-pill" id="pst-back-to-top">
<i class="fa-solid fa-arrow-up"></i>
Back to top
</button>
<input type="checkbox"
class="sidebar-toggle"
name="__primary"
id="__primary"/>
<label class="overlay overlay-primary" for="__primary"></label>
<input type="checkbox"
class="sidebar-toggle"
name="__secondary"
id="__secondary"/>
<label class="overlay overlay-secondary" for="__secondary"></label>
<div class="search-button__wrapper">
<div class="search-button__overlay"></div>
<div class="search-button__search-container">
<form class="bd-search d-flex align-items-center"
action="../../search.html"
method="get">
<i class="fa-solid fa-magnifying-glass"></i>
<input type="search"
class="form-control"
name="q"
id="search-input"
placeholder="Search the docs ..."
aria-label="Search the docs ..."
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false"/>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
</form></div>
</div>
<header class="bd-header navbar navbar-expand-lg bd-navbar">
<div class="bd-header__inner bd-page-width">
<label class="sidebar-toggle primary-toggle" for="__primary">
<span class="fa-solid fa-bars"></span>
</label>
<div class="col-lg-3 navbar-header-items__start">
<div class="navbar-item">
<a class="navbar-brand logo" href="../../index.html">
<img src="../../_static/arrow.png" class="logo__image only-light" alt="Apache Arrow v17.0.0.dev59 - Home"/>
<script>document.write(`<img src="../../_static/arrow-dark.png" class="logo__image only-dark" alt="Apache Arrow v17.0.0.dev59 - Home"/>`);</script>
</a></div>
</div>
<div class="col-lg-9 navbar-header-items">
<div class="me-auto navbar-header-items__center">
<div class="navbar-item">
<nav class="navbar-nav">
<ul class="bd-navbar-elements navbar-nav">
<li class="nav-item">
<a class="nav-link nav-internal" href="../../format/index.html">
Specifications
</a>
</li>
<li class="nav-item current active">
<a class="nav-link nav-internal" href="../index.html">
Development
</a>
</li>
<li class="nav-item dropdown">
<button class="btn dropdown-toggle nav-item" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-controls="pst-nav-more-links">
Implementations
</button>
<ul id="pst-nav-more-links" class="dropdown-menu">
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../c_glib/index.html">
C/GLib
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../cpp/index.html">
C++
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/csharp/README.md">
C#
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://pkg.go.dev/github.com/apache/arrow/go/v17">
Go
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../java/index.html">
Java
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../js/index.html">
JavaScript
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/julia/">
Julia
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">
MATLAB
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/nanoarrow/">
nanoarrow
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../python/index.html">
Python
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../r/index.html">
R
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">
Ruby
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../status.html">
Implementation Status
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/cpp/">
C++ cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/java/">
Java cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/py/">
Python cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/r/">
R cookbook
</a>
</li>
</ul>
</li>
</ul>
</nav></div>
</div>
<div class="navbar-header-items__end">
<div class="navbar-item navbar-persistent--container">
<script>
document.write(`
<button class="btn navbar-btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
`);
</script>
</div>
<div class="navbar-item">
<script>
document.write(`
<div class="version-switcher__container dropdown">
<button id="pst-version-switcher-button-2"
type="button"
class="version-switcher__button btn btn-sm navbar-btn dropdown-toggle"
data-bs-toggle="dropdown"
aria-haspopup="listbox"
aria-controls="pst-version-switcher-list-2"
aria-label="Version switcher list"
>
Choose version <!-- this text may get changed later by javascript -->
<span class="caret"></span>
</button>
<div id="pst-version-switcher-list-2"
class="version-switcher__menu dropdown-menu list-group-flush py-0"
role="listbox" aria-labelledby="pst-version-switcher-button-2">
<!-- dropdown will be populated by javascript on page load -->
</div>
</div>
`);
</script></div>
<div class="navbar-item">
<script>
document.write(`
<button class="btn btn-sm navbar-btn theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="theme-switch nav-link" data-mode="light"><i class="fa-solid fa-sun fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="dark"><i class="fa-solid fa-moon fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg"></i></span>
</button>
`);
</script></div>
<div class="navbar-item"><ul class="navbar-icon-links navbar-nav"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://twitter.com/ApacheArrow" title="X" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-x-twitter fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">X</span></a>
</li>
</ul></div>
</div>
</div>
<div class="navbar-persistent--mobile">
<script>
document.write(`
<button class="btn navbar-btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
`);
</script>
</div>
<label class="sidebar-toggle secondary-toggle" for="__secondary" tabindex="0">
<span class="fa-solid fa-outdent"></span>
</label>
</div>
</header>
<div class="bd-container">
<div class="bd-container__inner bd-page-width">
<div class="bd-sidebar-primary bd-sidebar">
<div class="sidebar-header-items sidebar-primary__section">
<div class="sidebar-header-items__center">
<div class="navbar-item">
<nav class="navbar-nav">
<ul class="bd-navbar-elements navbar-nav">
<li class="nav-item">
<a class="nav-link nav-internal" href="../../format/index.html">
Specifications
</a>
</li>
<li class="nav-item current active">
<a class="nav-link nav-internal" href="../index.html">
Development
</a>
</li>
<li class="nav-item dropdown">
<button class="btn dropdown-toggle nav-item" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-controls="pst-nav-more-links-2">
Implementations
</button>
<ul id="pst-nav-more-links-2" class="dropdown-menu">
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../c_glib/index.html">
C/GLib
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../cpp/index.html">
C++
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/csharp/README.md">
C#
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://pkg.go.dev/github.com/apache/arrow/go/v17">
Go
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../java/index.html">
Java
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../js/index.html">
JavaScript
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/julia/">
Julia
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">
MATLAB
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/nanoarrow/">
nanoarrow
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../python/index.html">
Python
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../r/index.html">
R
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">
Ruby
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../status.html">
Implementation Status
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/cpp/">
C++ cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/java/">
Java cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/py/">
Python cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/r/">
R cookbook
</a>
</li>
</ul>
</li>
</ul>
</nav></div>
</div>
<div class="sidebar-header-items__end">
<div class="navbar-item">
<script>
document.write(`
<div class="version-switcher__container dropdown">
<button id="pst-version-switcher-button-3"
type="button"
class="version-switcher__button btn btn-sm navbar-btn dropdown-toggle"
data-bs-toggle="dropdown"
aria-haspopup="listbox"
aria-controls="pst-version-switcher-list-3"
aria-label="Version switcher list"
>
Choose version <!-- this text may get changed later by javascript -->
<span class="caret"></span>
</button>
<div id="pst-version-switcher-list-3"
class="version-switcher__menu dropdown-menu list-group-flush py-0"
role="listbox" aria-labelledby="pst-version-switcher-button-3">
<!-- dropdown will be populated by javascript on page load -->
</div>
</div>
`);
</script></div>
<div class="navbar-item">
<script>
document.write(`
<button class="btn btn-sm navbar-btn theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="theme-switch nav-link" data-mode="light"><i class="fa-solid fa-sun fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="dark"><i class="fa-solid fa-moon fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg"></i></span>
</button>
`);
</script></div>
<div class="navbar-item"><ul class="navbar-icon-links navbar-nav"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://twitter.com/ApacheArrow" title="X" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-x-twitter fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">X</span></a>
</li>
</ul></div>
</div>
</div>
<div class="sidebar-primary-items__start sidebar-primary__section">
<div class="sidebar-primary-item">
<nav class="bd-docs-nav bd-links"
aria-label="Section Navigation">
<p class="bd-links__title" role="heading" aria-level="1">Section Navigation</p>
<div class="bd-toc-item navbar-nav"><ul class="current nav bd-sidenav">
<li class="toctree-l1"><a class="reference internal" href="../bug_reports.html">Bug reports and feature requests</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../guide/index.html">New Contributor’s Guide</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-1"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../guide/architectural_overview.html">Architectural Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="../guide/communication.html">Communication</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../guide/step_by_step/index.html">Steps in making your first PR</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-2"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/set_up.html">Set up</a></li>
<li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/building.html">Building the Arrow libraries 🏋🏿‍♀️</a></li>
<li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/finding_issues.html">Finding good first issues 🔎</a></li>
<li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/arrow_codebase.html">Working on the Arrow codebase 🧐</a></li>
<li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/testing.html">Testing 🧪</a></li>
<li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/styling.html">Styling 😎</a></li>
<li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/pr_lifecycle.html">Lifecycle of a pull request</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../guide/documentation.html">Helping with documentation</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../guide/tutorials/index.html">Tutorials</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-3"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../guide/tutorials/python_tutorial.html">Python tutorial</a></li>
<li class="toctree-l3"><a class="reference internal" href="../guide/tutorials/r_tutorial.html">R tutorials</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../guide/resources.html">Additional information and resources</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../overview.html">Contributing Overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="../reviewing.html">Reviewing contributions</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../cpp/index.html">C++ Development</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-4"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../cpp/building.html">Building Arrow C++</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cpp/development.html">Development Guidelines</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cpp/windows.html">Developing on Windows</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cpp/emscripten.html">Cross compiling for WebAssembly with Emscripten</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cpp/conventions.html">Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cpp/fuzzing.html">Fuzzing Arrow C++</a></li>
</ul>
</li>
<li class="toctree-l1 current active has-children"><a class="reference internal" href="index.html">Java Development</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-5"><i class="fa-solid fa-chevron-down"></i></label><ul class="current">
<li class="toctree-l2 current active"><a class="current reference internal" href="#">Building Arrow Java</a></li>
<li class="toctree-l2"><a class="reference internal" href="development.html">Development Guidelines</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../python.html">Python Development</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../continuous_integration/index.html">Continuous Integration</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-6"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../continuous_integration/overview.html">Continuous Integration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../continuous_integration/docker.html">Running Docker Builds</a></li>
<li class="toctree-l2"><a class="reference internal" href="../continuous_integration/archery.html">Daily Development using Archery</a></li>
<li class="toctree-l2"><a class="reference internal" href="../continuous_integration/crossbow.html">Packaging and Testing with Crossbow</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../benchmarks.html">Benchmarks</a></li>
<li class="toctree-l1"><a class="reference internal" href="../documentation.html">Building the Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release.html">Release Management Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release_verification.html">Release Verification Process</a></li>
</ul>
</div>
</nav></div>
</div>
<div class="sidebar-primary-items__end sidebar-primary__section">
</div>
<div id="rtd-footer-container"></div>
</div>
<main id="main-content" class="bd-main">
<div class="bd-content">
<div class="bd-article-container">
<div class="bd-header-article">
<div class="header-article-items header-article__inner">
<div class="header-article-items__start">
<div class="header-article-item">
<nav aria-label="Breadcrumb">
<ul class="bd-breadcrumbs">
<li class="breadcrumb-item breadcrumb-home">
<a href="../../index.html" class="nav-link" aria-label="Home">
<i class="fa-solid fa-home"></i>
</a>
</li>
<li class="breadcrumb-item"><a href="../index.html" class="nav-link">Development</a></li>
<li class="breadcrumb-item"><a href="index.html" class="nav-link">Java Development</a></li>
<li class="breadcrumb-item active" aria-current="page">Building Arrow Java</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="searchbox"></div>
<article class="bd-article">
<section id="building-arrow-java">
<span id="id1"></span><h1><a class="toc-backref" href="#id6" role="doc-backlink">Building Arrow Java</a><a class="headerlink" href="#building-arrow-java" title="Permalink to this heading">#</a></h1>
<nav class="contents" id="contents">
<p class="topic-title">Contents</p>
<ul class="simple">
<li><p><a class="reference internal" href="#building-arrow-java" id="id6">Building Arrow Java</a></p>
<ul>
<li><p><a class="reference internal" href="#system-setup" id="id7">System Setup</a></p></li>
<li><p><a class="reference internal" href="#building" id="id8">Building</a></p>
<ul>
<li><p><a class="reference internal" href="#building-java-modules" id="id9">Building Java Modules</a></p>
<ul>
<li><p><a class="reference internal" href="#id2" id="id10">Maven</a></p></li>
<li><p><a class="reference internal" href="#docker-compose" id="id11">Docker compose</a></p></li>
<li><p><a class="reference internal" href="#archery" id="id12">Archery</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#building-jni-libraries-dylib-so-dll" id="id13">Building JNI Libraries (*.dylib / *.so / *.dll)</a></p>
<ul>
<li><p><a class="reference internal" href="#id3" id="id14">Maven</a></p></li>
<li><p><a class="reference internal" href="#cmake" id="id15">CMake</a></p></li>
<li><p><a class="reference internal" href="#id4" id="id16">Archery</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#building-java-jni-modules" id="id17">Building Java JNI Modules</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#ide-configuration" id="id18">IDE Configuration</a></p>
<ul>
<li><p><a class="reference internal" href="#intellij" id="id19">IntelliJ</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#common-errors" id="id20">Common Errors</a></p></li>
<li><p><a class="reference internal" href="#installing-nightly-packages" id="id21">Installing Nightly Packages</a></p>
<ul>
<li><p><a class="reference internal" href="#installing-from-apache-nightlies" id="id22">Installing from Apache Nightlies</a></p></li>
<li><p><a class="reference internal" href="#installing-manually" id="id23">Installing Manually</a></p></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
<section id="system-setup">
<h2><a class="toc-backref" href="#id7" role="doc-backlink">System Setup</a><a class="headerlink" href="#system-setup" title="Permalink to this heading">#</a></h2>
<p>Arrow Java uses the <a class="reference external" href="https://maven.apache.org/">Maven</a> build system.</p>
<p>Building requires:</p>
<ul class="simple">
<li><p>JDK 8+</p></li>
<li><p>Maven 3+</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>CI will test all supported JDK LTS versions, plus the latest non-LTS version.</p>
</div>
</section>
<section id="building">
<h2><a class="toc-backref" href="#id8" role="doc-backlink">Building</a><a class="headerlink" href="#building" title="Permalink to this heading">#</a></h2>
<p>All the instructions below assume that you have cloned the Arrow git
repository:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/apache/arrow.git
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow
<span class="gp">$ </span>git<span class="w"> </span>submodule<span class="w"> </span>update<span class="w"> </span>--init<span class="w"> </span>--recursive
</pre></div>
</div>
<p>These are the options available to compile Arrow Java modules with:</p>
<ul class="simple">
<li><p>Maven build tool.</p></li>
<li><p>Docker Compose.</p></li>
<li><p>Archery.</p></li>
</ul>
<section id="building-java-modules">
<h3><a class="toc-backref" href="#id9" role="doc-backlink">Building Java Modules</a><a class="headerlink" href="#building-java-modules" title="Permalink to this heading">#</a></h3>
<p>To build the default modules, go to the project root and execute:</p>
<section id="id2">
<h4><a class="toc-backref" href="#id10" role="doc-backlink">Maven</a><a class="headerlink" href="#id2" title="Permalink to this heading">#</a></h4>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow/java
<span class="gp">$ </span><span class="nb">export</span><span class="w"> </span><span class="nv">JAVA_HOME</span><span class="o">=</span>&lt;absolute<span class="w"> </span>path<span class="w"> </span>to<span class="w"> </span>your<span class="w"> </span>java<span class="w"> </span>home&gt;
<span class="gp">$ </span>java<span class="w"> </span>--version
<span class="gp">$ </span>mvn<span class="w"> </span>clean<span class="w"> </span>install
</pre></div>
</div>
</section>
<section id="docker-compose">
<h4><a class="toc-backref" href="#id11" role="doc-backlink">Docker compose</a><a class="headerlink" href="#docker-compose" title="Permalink to this heading">#</a></h4>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow/java
<span class="gp">$ </span><span class="nb">export</span><span class="w"> </span><span class="nv">JAVA_HOME</span><span class="o">=</span>&lt;absolute<span class="w"> </span>path<span class="w"> </span>to<span class="w"> </span>your<span class="w"> </span>java<span class="w"> </span>home&gt;
<span class="gp">$ </span>java<span class="w"> </span>--version
<span class="gp">$ </span>docker-compose<span class="w"> </span>run<span class="w"> </span>java
</pre></div>
</div>
</section>
<section id="archery">
<h4><a class="toc-backref" href="#id12" role="doc-backlink">Archery</a><a class="headerlink" href="#archery" title="Permalink to this heading">#</a></h4>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow/java
<span class="gp">$ </span><span class="nb">export</span><span class="w"> </span><span class="nv">JAVA_HOME</span><span class="o">=</span>&lt;absolute<span class="w"> </span>path<span class="w"> </span>to<span class="w"> </span>your<span class="w"> </span>java<span class="w"> </span>home&gt;
<span class="gp">$ </span>java<span class="w"> </span>--version
<span class="gp">$ </span>archery<span class="w"> </span>docker<span class="w"> </span>run<span class="w"> </span>java
</pre></div>
</div>
</section>
</section>
<section id="building-jni-libraries-dylib-so-dll">
<h3><a class="toc-backref" href="#id13" role="doc-backlink">Building JNI Libraries (*.dylib / *.so / *.dll)</a><a class="headerlink" href="#building-jni-libraries-dylib-so-dll" title="Permalink to this heading">#</a></h3>
<p>First, we need to build the <a class="reference external" href="https://arrow.apache.org/docs/cpp/build_system.html">C++ shared libraries</a> that the JNI bindings will use.
We can build these manually or we can use <a class="reference external" href="https://github.com/apache/arrow/blob/main/dev/archery/README.md">Archery</a> to build them using a Docker container
(This will require installing Docker, Docker Compose, and Archery).</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you are building on Apple Silicon, be sure to use a JDK version that was compiled
for that architecture. See, for example, the <a class="reference external" href="https://www.azul.com/downloads/?os=macos&amp;architecture=arm-64-bit&amp;package=jdk">Azul JDK</a>.</p>
<p>If you are building on Windows OS, see <a class="reference internal" href="../cpp/windows.html#developers-cpp-windows"><span class="std std-ref">Developing on Windows</span></a>.</p>
</div>
<section id="id3">
<h4><a class="toc-backref" href="#id14" role="doc-backlink">Maven</a><a class="headerlink" href="#id3" title="Permalink to this heading">#</a></h4>
<ul>
<li><p>To build only the JNI C Data Interface library (macOS / Linux):</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java
$ export JAVA_HOME=&lt;absolute path to your java home&gt;
$ java --version
$ mvn generate-resources -Pgenerate-libs-cdata-all-os -N
$ ls -latr ../java-dist/lib
|__ arrow_cdata_jni/
</pre></div>
</div>
</li>
<li><p>To build only the JNI C Data Interface library (Windows):</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow/java
<span class="gp">$ </span>mvn<span class="w"> </span>generate-resources<span class="w"> </span>-Pgenerate-libs-cdata-all-os<span class="w"> </span>-N
<span class="gp">$ </span>dir<span class="w"> </span><span class="s2">&quot;../java-dist/bin&quot;</span>
<span class="go">|__ arrow_cdata_jni/</span>
</pre></div>
</div>
</li>
<li><p>To build all JNI libraries (macOS / Linux) except the JNI C Data Interface library:</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java
$ export JAVA_HOME=&lt;absolute path to your java home&gt;
$ java --version
$ mvn generate-resources -Pgenerate-libs-jni-macos-linux -N
$ ls -latr java-dist/lib
|__ arrow_dataset_jni/
|__ arrow_orc_jni/
|__ gandiva_jni/
</pre></div>
</div>
</li>
<li><p>To build all JNI libraries (Windows) except the JNI C Data Interface library:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow/java
<span class="gp">$ </span>mvn<span class="w"> </span>generate-resources<span class="w"> </span>-Pgenerate-libs-jni-windows<span class="w"> </span>-N
<span class="gp">$ </span>dir<span class="w"> </span><span class="s2">&quot;../java-dist/bin&quot;</span>
<span class="go">|__ arrow_dataset_jni/</span>
</pre></div>
</div>
</li>
</ul>
</section>
<section id="cmake">
<h4><a class="toc-backref" href="#id15" role="doc-backlink">CMake</a><a class="headerlink" href="#cmake" title="Permalink to this heading">#</a></h4>
<ul>
<li><p>To build only the JNI C Data Interface library (macOS / Linux):</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow
$ mkdir -p java-dist java-cdata
$ cmake \
-S java \
-B java-cdata \
-DARROW_JAVA_JNI_ENABLE_C=ON \
-DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \
-DBUILD_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=java-dist
$ cmake --build java-cdata --target install --config Release
$ ls -latr java-dist/lib
|__ arrow_cdata_jni/
</pre></div>
</div>
</li>
<li><p>To build only the JNI C Data Interface library (Windows):</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow
<span class="gp">$ </span>mkdir<span class="w"> </span>java-dist,<span class="w"> </span>java-cdata
<span class="gp">$ </span>cmake<span class="w"> </span>^
<span class="go"> -S java ^</span>
<span class="go"> -B java-cdata ^</span>
<span class="go"> -DARROW_JAVA_JNI_ENABLE_C=ON ^</span>
<span class="go"> -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF ^</span>
<span class="go"> -DBUILD_TESTING=OFF ^</span>
<span class="go"> -DCMAKE_BUILD_TYPE=Release ^</span>
<span class="go"> -DCMAKE_INSTALL_PREFIX=java-dist</span>
<span class="gp">$ </span>cmake<span class="w"> </span>--build<span class="w"> </span>java-cdata<span class="w"> </span>--target<span class="w"> </span>install<span class="w"> </span>--config<span class="w"> </span>Release
<span class="gp">$ </span>dir<span class="w"> </span><span class="s2">&quot;java-dist/bin&quot;</span>
<span class="go">|__ arrow_cdata_jni/</span>
</pre></div>
</div>
</li>
<li><p>To build all JNI libraries (macOS / Linux) except the JNI C Data Interface library:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span>$ cd arrow
$ brew bundle --file=cpp/Brewfile
# Homebrew Bundle complete! 25 Brewfile dependencies now installed.
$ brew uninstall aws-sdk-cpp
# (We can&#39;t use aws-sdk-cpp installed by Homebrew because it has
# an issue: https://github.com/aws/aws-sdk-cpp/issues/1809 )
$ export JAVA_HOME=&lt;absolute path to your java home&gt;
$ mkdir -p java-dist cpp-jni
$ cmake \
-S cpp \
-B cpp-jni \
-DARROW_BUILD_SHARED=OFF \
-DARROW_CSV=ON \
-DARROW_DATASET=ON \
-DARROW_DEPENDENCY_SOURCE=BUNDLED \
-DARROW_DEPENDENCY_USE_SHARED=OFF \
-DARROW_FILESYSTEM=ON \
-DARROW_GANDIVA=ON \
-DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \
-DARROW_JSON=ON \
-DARROW_ORC=ON \
-DARROW_PARQUET=ON \
-DARROW_S3=ON \
-DARROW_SUBSTRAIT=ON \
-DARROW_USE_CCACHE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=java-dist \
-DCMAKE_UNITY_BUILD=ON
$ cmake --build cpp-jni --target install --config Release
$ cmake \
-S java \
-B java-jni \
-DARROW_JAVA_JNI_ENABLE_C=OFF \
-DARROW_JAVA_JNI_ENABLE_DEFAULT=ON \
-DBUILD_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=java-dist \
-DCMAKE_PREFIX_PATH=$PWD/java-dist \
-DProtobuf_ROOT=$PWD/../cpp-jni/protobuf_ep-install \
-DProtobuf_USE_STATIC_LIBS=ON
$ cmake --build java-jni --target install --config Release
$ ls -latr java-dist/lib/
|__ arrow_dataset_jni/
|__ arrow_orc_jni/
|__ gandiva_jni/
</pre></div>
</div>
</li>
<li><p>To build all JNI libraries (Windows) except the JNI C Data Interface library:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow
<span class="gp">$ </span>mkdir<span class="w"> </span>java-dist,<span class="w"> </span>cpp-jni
<span class="gp">$ </span>cmake<span class="w"> </span>^
<span class="go"> -S cpp ^</span>
<span class="go"> -B cpp-jni ^</span>
<span class="go"> -DARROW_BUILD_SHARED=OFF ^</span>
<span class="go"> -DARROW_CSV=ON ^</span>
<span class="go"> -DARROW_DATASET=ON ^</span>
<span class="go"> -DARROW_DEPENDENCY_USE_SHARED=OFF ^</span>
<span class="go"> -DARROW_FILESYSTEM=ON ^</span>
<span class="go"> -DARROW_GANDIVA=OFF ^</span>
<span class="go"> -DARROW_JSON=ON ^</span>
<span class="go"> -DARROW_ORC=ON ^</span>
<span class="go"> -DARROW_PARQUET=ON ^</span>
<span class="go"> -DARROW_S3=ON ^</span>
<span class="go"> -DARROW_SUBSTRAIT=ON ^</span>
<span class="go"> -DARROW_USE_CCACHE=ON ^</span>
<span class="go"> -DARROW_WITH_BROTLI=ON ^</span>
<span class="go"> -DARROW_WITH_LZ4=ON ^</span>
<span class="go"> -DARROW_WITH_SNAPPY=ON ^</span>
<span class="go"> -DARROW_WITH_ZLIB=ON ^</span>
<span class="go"> -DARROW_WITH_ZSTD=ON ^</span>
<span class="go"> -DCMAKE_BUILD_TYPE=Release ^</span>
<span class="go"> -DCMAKE_INSTALL_PREFIX=java-dist ^</span>
<span class="go"> -DCMAKE_UNITY_BUILD=ON ^</span>
<span class="go"> -GNinja</span>
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>cpp-jni
<span class="gp">$ </span>ninja<span class="w"> </span>install
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>../
<span class="gp">$ </span>cmake<span class="w"> </span>^
<span class="go"> -S java ^</span>
<span class="go"> -B java-jni ^</span>
<span class="go"> -DARROW_JAVA_JNI_ENABLE_C=OFF ^</span>
<span class="go"> -DARROW_JAVA_JNI_ENABLE_DATASET=ON ^</span>
<span class="go"> -DARROW_JAVA_JNI_ENABLE_DEFAULT=ON ^</span>
<span class="go"> -DARROW_JAVA_JNI_ENABLE_GANDIVA=OFF ^</span>
<span class="go"> -DARROW_JAVA_JNI_ENABLE_ORC=ON ^</span>
<span class="go"> -DBUILD_TESTING=OFF ^</span>
<span class="go"> -DCMAKE_BUILD_TYPE=Release ^</span>
<span class="go"> -DCMAKE_INSTALL_PREFIX=java-dist ^</span>
<span class="go"> -DCMAKE_PREFIX_PATH=$PWD/java-dist</span>
<span class="gp">$ </span>cmake<span class="w"> </span>--build<span class="w"> </span>java-jni<span class="w"> </span>--target<span class="w"> </span>install<span class="w"> </span>--config<span class="w"> </span>Release
<span class="gp">$ </span>dir<span class="w"> </span><span class="s2">&quot;java-dist/bin&quot;</span>
<span class="go">|__ arrow_orc_jni/</span>
<span class="go">|__ arrow_dataset_jni/</span>
</pre></div>
</div>
</li>
</ul>
</section>
<section id="id4">
<h4><a class="toc-backref" href="#id16" role="doc-backlink">Archery</a><a class="headerlink" href="#id4" title="Permalink to this heading">#</a></h4>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow
$ archery docker run java-jni-manylinux-2014
$ ls -latr java-dist
|__ arrow_cdata_jni/
|__ arrow_dataset_jni/
|__ arrow_orc_jni/
|__ gandiva_jni/
</pre></div>
</div>
</section>
</section>
<section id="building-java-jni-modules">
<h3><a class="toc-backref" href="#id17" role="doc-backlink">Building Java JNI Modules</a><a class="headerlink" href="#building-java-jni-modules" title="Permalink to this heading">#</a></h3>
<ul>
<li><p>To compile the JNI bindings, use the <code class="docutils literal notranslate"><span class="pre">arrow-c-data</span></code> Maven profile:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow/java
<span class="gp">$ </span>mvn<span class="w"> </span>-Darrow.c.jni.dist.dir<span class="o">=</span>&lt;absolute<span class="w"> </span>path<span class="w"> </span>to<span class="w"> </span>your<span class="w"> </span>arrow<span class="w"> </span>folder&gt;/java-dist/lib<span class="w"> </span>-Parrow-c-data<span class="w"> </span>clean<span class="w"> </span>install
</pre></div>
</div>
</li>
<li><p>To compile the JNI bindings for ORC / Gandiva / Dataset, use the <code class="docutils literal notranslate"><span class="pre">arrow-jni</span></code> Maven profile:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow/java
<span class="gp">$ </span>mvn<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-Darrow.cpp.build.dir<span class="o">=</span>&lt;absolute<span class="w"> </span>path<span class="w"> </span>to<span class="w"> </span>your<span class="w"> </span>arrow<span class="w"> </span>folder&gt;/java-dist/lib/<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-Darrow.c.jni.dist.dir<span class="o">=</span>&lt;absolute<span class="w"> </span>path<span class="w"> </span>to<span class="w"> </span>your<span class="w"> </span>arrow<span class="w"> </span>folder&gt;/java-dist/lib/<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-Parrow-jni<span class="w"> </span>clean<span class="w"> </span>install
</pre></div>
</div>
</li>
</ul>
</section>
</section>
<section id="ide-configuration">
<h2><a class="toc-backref" href="#id18" role="doc-backlink">IDE Configuration</a><a class="headerlink" href="#ide-configuration" title="Permalink to this heading">#</a></h2>
<section id="intellij">
<h3><a class="toc-backref" href="#id19" role="doc-backlink">IntelliJ</a><a class="headerlink" href="#intellij" title="Permalink to this heading">#</a></h3>
<p>To start working on Arrow in IntelliJ: build the project once from the command
line using <code class="docutils literal notranslate"><span class="pre">mvn</span> <span class="pre">clean</span> <span class="pre">install</span></code>. Then open the <code class="docutils literal notranslate"><span class="pre">java/</span></code> subdirectory of the
Arrow repository, and update the following settings:</p>
<ul class="simple">
<li><p>In the Files tool window, find the path <code class="docutils literal notranslate"><span class="pre">vector/target/generated-sources</span></code>,
right click the directory, and select Mark Directory as &gt; Generated Sources
Root. There is no need to mark other generated sources directories, as only
the <code class="docutils literal notranslate"><span class="pre">vector</span></code> module generates sources.</p></li>
<li><p>For JDK 8, disable the <code class="docutils literal notranslate"><span class="pre">error-prone</span></code> profile to build the project successfully.</p></li>
<li><p>For JDK 11, due to an <a class="reference external" href="https://youtrack.jetbrains.com/issue/IDEA-201168">IntelliJ bug</a>, you must go into
Settings &gt; Build, Execution, Deployment &gt; Compiler &gt; Java Compiler and disable
“Use ‘–release’ option for cross-compilation (Java 9 and later)”. Otherwise
you will get an error like “package sun.misc does not exist”.</p></li>
<li><p>You may want to disable error-prone entirely if it gives spurious
warnings (disable both error-prone profiles in the Maven tool window
and “Reload All Maven Projects”).</p></li>
<li><p>If using IntelliJ’s Maven integration to build, you may need to change
<code class="docutils literal notranslate"><span class="pre">&lt;fork&gt;</span></code> to <code class="docutils literal notranslate"><span class="pre">false</span></code> in the pom.xml files due to an <a class="reference external" href="https://youtrack.jetbrains.com/issue/IDEA-278903">IntelliJ bug</a>.</p></li>
<li><p>To enable debugging JNI-based modules like <code class="docutils literal notranslate"><span class="pre">dataset</span></code>,
activate specific profiles in the Maven tab under “Profiles”.
Ensure the profiles <code class="docutils literal notranslate"><span class="pre">arrow-c-data</span></code>, <code class="docutils literal notranslate"><span class="pre">arrow-jni</span></code>, <code class="docutils literal notranslate"><span class="pre">generate-libs-cdata-all-os</span></code>,
<code class="docutils literal notranslate"><span class="pre">generate-libs-jni-macos-linux</span></code>, and <code class="docutils literal notranslate"><span class="pre">jdk11+</span></code> are enabled, so that the
IDE can build them and enable debugging.</p></li>
</ul>
<p>You may not need to update all of these settings if you build/test with the
IntelliJ Maven integration instead of with IntelliJ directly.</p>
</section>
</section>
<section id="common-errors">
<h2><a class="toc-backref" href="#id20" role="doc-backlink">Common Errors</a><a class="headerlink" href="#common-errors" title="Permalink to this heading">#</a></h2>
<ul>
<li><p>When working with the JNI code: if the C++ build cannot find dependencies, with errors like these:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem)</span>
<span class="go">Could NOT find Lz4 (missing: LZ4_LIB)</span>
<span class="go">Could NOT find zstd (missing: ZSTD_LIB)</span>
</pre></div>
</div>
<p>Specify that the dependencies should be downloaded at build time (more details at <a class="reference external" href="https://arrow.apache.org/docs/developers/cpp/building.html#individual-dependency-resolution">Dependency Resolution</a>):</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">-Dre2_SOURCE=BUNDLED \</span>
<span class="go">-DBoost_SOURCE=BUNDLED \</span>
<span class="go">-Dutf8proc_SOURCE=BUNDLED \</span>
<span class="go">-DSnappy_SOURCE=BUNDLED \</span>
<span class="go">-DORC_SOURCE=BUNDLED \</span>
<span class="go">-DZLIB_SOURCE=BUNDLED</span>
</pre></div>
</div>
</li>
</ul>
</section>
<section id="installing-nightly-packages">
<h2><a class="toc-backref" href="#id21" role="doc-backlink">Installing Nightly Packages</a><a class="headerlink" href="#installing-nightly-packages" title="Permalink to this heading">#</a></h2>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>These packages are not official releases. Use them at your own risk.</p>
</div>
<p>Arrow nightly builds are posted on the mailing list at <a class="reference external" href="https://lists.apache.org/list.html?builds&#64;arrow.apache.org">builds&#64;arrow.apache.org</a>.
The artifacts are uploaded to GitHub. For example, for 2022/07/30, they can be found at <a class="reference external" href="https://github.com/ursacomputing/crossbow/releases/tag/nightly-packaging-2022-07-30-0-github-java-jars">GitHub Nightly</a>.</p>
<section id="installing-from-apache-nightlies">
<h3><a class="toc-backref" href="#id22" role="doc-backlink">Installing from Apache Nightlies</a><a class="headerlink" href="#installing-from-apache-nightlies" title="Permalink to this heading">#</a></h3>
<ol class="arabic">
<li><p>Look up the nightly version number for the Arrow libraries used.</p>
<p>For example, for <code class="docutils literal notranslate"><span class="pre">arrow-memory</span></code>, visit <a class="reference external" href="https://nightlies.apache.org/arrow/java/org/apache/arrow/arrow-memory/">https://nightlies.apache.org/arrow/java/org/apache/arrow/arrow-memory/</a> and see what versions are available (e.g. 9.0.0.dev501).</p>
</li>
<li><p>Add Apache Nightlies Repository to the Maven/Gradle project.</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;properties&gt;</span>
<span class="w"> </span><span class="nt">&lt;arrow.version&gt;</span>9.0.0.dev501<span class="nt">&lt;/arrow.version&gt;</span>
<span class="nt">&lt;/properties&gt;</span>
...
<span class="nt">&lt;repositories&gt;</span>
<span class="w"> </span><span class="nt">&lt;repository&gt;</span>
<span class="w"> </span><span class="nt">&lt;id&gt;</span>arrow-apache-nightlies<span class="nt">&lt;/id&gt;</span>
<span class="w"> </span><span class="nt">&lt;url&gt;</span>https://nightlies.apache.org/arrow/java<span class="nt">&lt;/url&gt;</span>
<span class="w"> </span><span class="nt">&lt;/repository&gt;</span>
<span class="nt">&lt;/repositories&gt;</span>
...
<span class="nt">&lt;dependencies&gt;</span>
<span class="w"> </span><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>org.apache.arrow<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>arrow-vector<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>${arrow.version}<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;/dependencies&gt;</span>
...
</pre></div>
</div>
</li>
</ol>
</section>
<section id="installing-manually">
<h3><a class="toc-backref" href="#id23" role="doc-backlink">Installing Manually</a><a class="headerlink" href="#installing-manually" title="Permalink to this heading">#</a></h3>
<ol class="arabic">
<li><p>Decide nightly packages repository to use, for example: <a class="github reference external" href="https://github.com/ursacomputing/crossbow/releases/tag/nightly-packaging-2022-07-30-0-github-java-jars">ursacomputing/crossbow</a></p></li>
<li><p>Add packages to your pom.xml, for example: flight-core (it depends on: arrow-format, arrow-vector, arrow-memory-core and arrow-memory-netty).</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;properties&gt;</span>
<span class="w"> </span><span class="nt">&lt;maven.compiler.source&gt;</span>8<span class="nt">&lt;/maven.compiler.source&gt;</span>
<span class="w"> </span><span class="nt">&lt;maven.compiler.target&gt;</span>8<span class="nt">&lt;/maven.compiler.target&gt;</span>
<span class="w"> </span><span class="nt">&lt;arrow.version&gt;</span>9.0.0.dev501<span class="nt">&lt;/arrow.version&gt;</span>
<span class="nt">&lt;/properties&gt;</span>
<span class="nt">&lt;dependencies&gt;</span>
<span class="w"> </span><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>org.apache.arrow<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>flight-core<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>${arrow.version}<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;/dependencies&gt;</span>
</pre></div>
</div>
</li>
<li><p>Download the necessary pom and jar files to a temporary directory:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>mkdir<span class="w"> </span>nightly-packaging-2022-07-30-0-github-java-jars
$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>nightly-packaging-2022-07-30-0-github-java-jars
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-java-root-9.0.0.dev501.pom
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-format-9.0.0.dev501.pom
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-format-9.0.0.dev501.jar
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-vector-9.0.0.dev501.pom
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-vector-9.0.0.dev501.jar
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-9.0.0.dev501.pom
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-core-9.0.0.dev501.pom
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-netty-9.0.0.dev501.pom
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-core-9.0.0.dev501.jar
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-netty-9.0.0.dev501.jar
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-flight-9.0.0.dev501.pom
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/flight-core-9.0.0.dev501.pom
$<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/flight-core-9.0.0.dev501.jar
$<span class="w"> </span>tree
.
├──<span class="w"> </span>arrow-flight-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-format-9.0.0.dev501.jar
├──<span class="w"> </span>arrow-format-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-java-root-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-memory-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-memory-core-9.0.0.dev501.jar
├──<span class="w"> </span>arrow-memory-core-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-memory-netty-9.0.0.dev501.jar
├──<span class="w"> </span>arrow-memory-netty-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-vector-9.0.0.dev501.jar
├──<span class="w"> </span>arrow-vector-9.0.0.dev501.pom
├──<span class="w"> </span>flight-core-9.0.0.dev501.jar
└──<span class="w"> </span>flight-core-9.0.0.dev501.pom
</pre></div>
</div>
</li>
<li><p>Install the artifacts to the local Maven repository with <code class="docutils literal notranslate"><span class="pre">mvn</span> <span class="pre">install:install-file</span></code>:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-java-root-9.0.0.dev501.pom&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-java-root<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-format-9.0.0.dev501.pom&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-format<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-format-9.0.0.dev501.jar&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-format<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-vector-9.0.0.dev501.pom&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-vector<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-vector-9.0.0.dev501.jar&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-vector<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-9.0.0.dev501.pom&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-core-9.0.0.dev501.pom&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory-core<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-netty-9.0.0.dev501.pom&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory-netty<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-core-9.0.0.dev501.jar&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory-core<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-netty-9.0.0.dev501.jar&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory-netty<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-flight-9.0.0.dev501.pom&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-flight<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/flight-core-9.0.0.dev501.pom&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>flight-core<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom
$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">&quot;</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/flight-core-9.0.0.dev501.jar&quot;</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>flight-core<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar
</pre></div>
</div>
</li>
<li><p>Validate that the packages were installed:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>tree<span class="w"> </span>~/.m2/repository/org/apache/arrow
.
├──<span class="w"> </span>arrow-flight
<span class="w">   </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501
<span class="w">   </span><span class="w">   </span>└──<span class="w"> </span>arrow-flight-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-format
<span class="w">   </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501
<span class="w">   </span><span class="w">   </span>├──<span class="w"> </span>arrow-format-9.0.0.dev501.jar
<span class="w">   </span><span class="w">   </span>└──<span class="w"> </span>arrow-format-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-java-root
<span class="w">   </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501
<span class="w">   </span><span class="w">   </span>└──<span class="w"> </span>arrow-java-root-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-memory
<span class="w">   </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501
<span class="w">   </span><span class="w">   </span>└──<span class="w"> </span>arrow-memory-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-memory-core
<span class="w">   </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501
<span class="w">   </span><span class="w">   </span>├──<span class="w"> </span>arrow-memory-core-9.0.0.dev501.jar
<span class="w">   </span><span class="w">   </span>└──<span class="w"> </span>arrow-memory-core-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-memory-netty
<span class="w">   </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501
<span class="w">   </span><span class="w">   </span>├──<span class="w"> </span>arrow-memory-netty-9.0.0.dev501.jar
<span class="w">   </span><span class="w">   </span>└──<span class="w"> </span>arrow-memory-netty-9.0.0.dev501.pom
├──<span class="w"> </span>arrow-vector
<span class="w">   </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501
<span class="w">   </span><span class="w">   </span>├──<span class="w"> </span>_remote.repositories
<span class="w">   </span><span class="w">   </span>├──<span class="w"> </span>arrow-vector-9.0.0.dev501.jar
<span class="w">   </span><span class="w">   </span>└──<span class="w"> </span>arrow-vector-9.0.0.dev501.pom
└──<span class="w"> </span>flight-core
<span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501
<span class="w"> </span><span class="w">   </span>├──<span class="w"> </span>flight-core-9.0.0.dev501.jar
<span class="w"> </span><span class="w">   </span>└──<span class="w"> </span>flight-core-9.0.0.dev501.pom
</pre></div>
</div>
</li>
<li><p>Compile your project like usual with <code class="docutils literal notranslate"><span class="pre">mvn</span> <span class="pre">clean</span> <span class="pre">install</span></code>.</p></li>
</ol>
</section>
</section>
</section>
</article>
<footer class="prev-next-footer">
<div class="prev-next-area">
<a class="left-prev"
href="index.html"
title="previous page">
<i class="fa-solid fa-angle-left"></i>
<div class="prev-next-info">
<p class="prev-next-subtitle">previous</p>
<p class="prev-next-title">Java Development</p>
</div>
</a>
<a class="right-next"
href="development.html"
title="next page">
<div class="prev-next-info">
<p class="prev-next-subtitle">next</p>
<p class="prev-next-title">Development Guidelines</p>
</div>
<i class="fa-solid fa-angle-right"></i>
</a>
</div>
</footer>
</div>
<div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
<div class="sidebar-secondary-item">
<div
id="pst-page-navigation-heading-2"
class="page-toc tocsection onthispage">
<i class="fa-solid fa-list"></i> On this page
</div>
<nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#system-setup">System Setup</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#building">Building</a><ul class="visible nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-java-modules">Building Java Modules</a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#id2">Maven</a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#docker-compose">Docker compose</a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#archery">Archery</a></li>
</ul>
</li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-jni-libraries-dylib-so-dll">Building JNI Libraries (*.dylib / *.so / *.dll)</a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#id3">Maven</a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#cmake">CMake</a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#id4">Archery</a></li>
</ul>
</li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-java-jni-modules">Building Java JNI Modules</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#ide-configuration">IDE Configuration</a><ul class="visible nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#intellij">IntelliJ</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#common-errors">Common Errors</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#installing-nightly-packages">Installing Nightly Packages</a><ul class="visible nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#installing-from-apache-nightlies">Installing from Apache Nightlies</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#installing-manually">Installing Manually</a></li>
</ul>
</li>
</ul>
</nav></div>
<div class="sidebar-secondary-item">
<div class="tocsection editthispage">
<a href="https://github.com/apache/arrow/edit/main/docs/source/developers/java/building.rst">
<i class="fa-solid fa-pencil"></i>
Edit on GitHub
</a>
</div>
</div>
</div></div>
</div>
<footer class="bd-footer-content">
</footer>
</main>
</div>
</div>
<!-- Scripts loaded after <body> so the DOM is not blocked -->
<script src="../../_static/scripts/bootstrap.js?digest=8d27b9dea8ad943066ae"></script>
<script src="../../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae"></script>
<footer class="bd-footer">
<div class="bd-footer__inner bd-page-width">
<div class="footer-items__start">
<div class="footer-item">
<p class="copyright">
© Copyright 2016-2024 Apache Software Foundation.
Apache Arrow, Arrow, Apache, the Apache feather logo, and the Apache Arrow project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
<br/>
</p>
</div>
<div class="footer-item">
<p class="sphinx-version">
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.2.0.
<br/>
</p>
</div>
</div>
<div class="footer-items__end">
<div class="footer-item">
<p class="theme-version">
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.15.2.
</p></div>
</div>
</div>
</footer>
</body>
</html>