<!DOCTYPE html>
<html lang="en">
<head>
    

    <title>Apache Jena - Using Jena with Eclipse</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.1b17c39a117e22b46db4c66f6395dc27c134a60377d87d2d5745b8600eb69722.css" integrity="sha256-GxfDmhF&#43;IrRttMZvY5XcJ8E0pgN32H0tV0W4YA62lyI=">
    <link rel="shortcut icon" href="/images/favicon.ico" />
    
</head>

<body>

<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <a class="navbar-brand" href="/index.html">
                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
        </div>

        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                <li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
                <li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">Tutorials</li>
                        <li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a class="dropdown-item"  href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/sparql.html">SPARQL tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">References</li>
                        <li><a class="dropdown-item"  href="/documentation/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a class="dropdown-item"  href="/documentation/io/">RDF I/O</a></li>
                        <li><a class="dropdown-item"  href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a class="dropdown-item"  href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/ontology/">Ontology API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a class="dropdown-item"  href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/text-query.html">Text Search</a></li>
                    </ul>
                </li>

                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
                    </ul>
                </li>
            </ul>
            <form class="d-flex" role="search" action="/search" method="GET">
                <div class="input-group">
                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search" style="width: 10rem;">
                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
                        <i class="bi-search"></i>
                    </button>
                </div>
            </form>
            <ul class="navbar-nav">
                <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html" title="Ask"><span class="bi-patch-question"></span><span class="text-body d-none d-xxl-inline"> Ask</span></a></li>

                <li class="nav-item dropdown">
                    <a href="#" title="Get involved" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span><span class="text-body d-none d-xxl-inline"> Get involved </span><b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
                        <li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">Project</li>
                        <li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
                        <li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
                        <li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
                        <li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
                        <li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
                        <li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
                        <li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">ASF</li>
                        <li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>
                
                
                
                
                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/tutorials/using_jena_with_eclipse.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span><span class="text-body d-none d-xxl-inline"> Edit this page</span></a></li>
            </ul>
        </div>
    </div>
</nav>

<div class="container">
    <div class="row">
        <div class="col-md-12">
            
            <div id="breadcrumbs">
                





<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
    
    
        
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/tutorials'>TUTORIALS</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item active">USING JENA WITH ECLIPSE</li>
            
            
        
    
</ol>




            </div>
            <h1 class="title">Using Jena with Eclipse</h1>
            
            
<main class="d-flex flex-xl-row flex-column">
  
  <aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#setting-up-your-environment">Setting up your environment</a></li>
    <li><a href="#getting-the-source-code">Getting the source code</a></li>
    <li><a href="#importing-the-source-code-into-eclipse">Importing the source code into Eclipse</a></li>
  </ul>
</nav>
  </aside>
  <article class="flex-column me-lg-4">
    <p>This tutorial will guide you to set up Jena on your Eclipse. At the time of writing, the
latest version of Eclipse is 4.7.0. The version of Java used for this tutorial was Java
1.8.0_121. The operational system should not be a problem, so the only requirements are
Eclipse, Java 1.8.x, and git to checkout the Jena source code.</p>
<h2 id="setting-up-your-environment">Setting up your environment</h2>
<p>The first thing you will need to install is a Java JDK 1.8.x. The installation instructions
vary depending on the operating system, and will not be covered in this tutorial.</p>
<p>Once you have Java installed, you can proceed installing Eclipse. You can either download
an Eclipse distribution, or download the installer and choose one amongst the available
packages. For this tutorial, you will see instructions and screenshots taken from an
Eclipse IDE for Java Developers.</p>
<p>Eclipse comes with a bundled Apache Maven, but you may prefer to install it to another
directory and customize your local settings. As this is not a must have requirement, this
will not be covered in this tutorial.</p>
<h2 id="getting-the-source-code">Getting the source code</h2>
<p>Follow the instructions from our <a href="/getting_involved/index.html">Getting involved in Apache Jena</a>
page to check out the code from the Git repository. Most developers will check out the code into
their Eclipse workspace folder. But you should be able to import it into Eclipse from a
different folder too, as will be shown in the next sections.</p>
<p>Do not forget to run <code>mvn clean install</code> as instructed, so that Eclipse will be able to
find all local artifacts with no issues.</p>
<h2 id="importing-the-source-code-into-eclipse">Importing the source code into Eclipse</h2>
<p>Eclipse comes, by default, with Maven integration. In the past you would have to install
and configure a plug-in for that. But assuming you followed the instructions from the previous
sections, you should be ready to import the source code.</p>
<img src="figures/using_jena_with_eclipse-001.png" class="img-responsive" alt="Eclipse workspace">
<p>In the previous picture, you can see an empty Eclipse workspace. The view was configured to
display working sets, and there is a Jena working set already created. This is not necessary
for this tutorial, but you may find it useful if you work on separate projects at the same
time (e.g. working on Apache Commons RDF and Apache Jena projects simultaneously).</p>
<p>Eclipse keeps, by default, your projects on the left hand side panel. Right click somewhere
on that panel and choose <i>Import</i>. Alternatively, you can navigate using the top menu
to <i>File</i> / <i>Import</i>.</p>
<img src="figures/using_jena_with_eclipse-002.png" class="img-responsive" alt="Import project context menu">
<p>That will open a menu dialog, where you should find several types of projects to
import into your workspace. For Jena, you must select import <i>Existing Maven Projects</i>,
under the <i>Maven</i> project category.</p>
<img src="figures/using_jena_with_eclipse-003.png" class="img-responsive" alt="Import existing Maven project">
<p>Clicking <i>Next</i> will bring you to another screen where you can choose the location
of Jena source code. Point it to the folder where you checked out the Jena source code
in the previous section of this tutorial.</p>
<img src="figures/using_jena_with_eclipse-004.png" class="img-responsive" alt="Choosing source code location">
<p>Click <i>Finish</i> and Eclipse will start importing your project. This may take
a few minutes, depending on your computer resources. You can keep an eye at the <i>Progress</i>
tab, in the bottom panel, to see what is the status of the import process.</p>
<p>Once the project has been imported into your workspace, you should see something similar to the
following screenshot.</p>
<img src="figures/using_jena_with_eclipse-005.png" class="img-responsive" alt="Jena in Eclipse">
<!-- this can be removed when we fix shading guava -->
<p>After the import process is complete, Eclipse will start building the project
automatically if you have it configured with the default settings, or you may have to
click on <i>Project</i> / <i>Build All</i>.</p>
<p>Eclipse will display a red icon on the project folders with build problems. We will see now how
to fix these build problems, so Eclipse can successfully build and run the project.</p>
<img src="figures/using_jena_with_eclipse-006.png" class="img-responsive" alt="Eclipse build problems">
<p>The build problems are related to a known issue due to how the project shades Google Guava classes.</p>
<p>The workaround is to make sure the <i>jena-shaded-guava</i> Maven module remains closed
in Eclipse. You can simply right click on the project, and choose Close. Its icon should
change, indicating it has been closed.</p>
<img src="figures/using_jena_with_eclipse-007.png" class="img-responsive" alt="Close jena-shaded-maven module">
<p>After doing that, it is good to trigger a <i>Clean</i> on all projects, so that
Eclipse can clean and re-build everything.</p>
<img src="figures/using_jena_with_eclipse-008.png" class="img-responsive" alt="Clean all Eclipse projects">
<p>You may also need to update the Maven project settings, so that Eclipse
is aware that the project is closed and it will use a local artifact, rather than the
module in the workspace.</p>
<img src="figures/using_jena_with_eclipse-009.png" class="img-responsive" alt="Update Maven projects settings">
<p>If you followed all steps, and there is nothing else running in your Eclipse
(check the Progress tab) then your Jena project should have been built with success.</p>
<img src="figures/using_jena_with_eclipse-010.png" class="img-responsive" alt="Jena built in Eclipse">
<p>If you would like to test Fuseki now, for example, you can expand the <i>jena-fuseki-core</i>
Maven module, navigate to the <i>org.apache.jena.fuseki.cmd</i> package, and run
<i>FusekiCmd</i> as a Java Application.</p>
<img src="figures/using_jena_with_eclipse-011.png" class="img-responsive" alt="Run Fuseki in Eclipse">
<p>That should initialize Fuseki, and have it listening on <a href="http://localhost:3030">http://localhost:3030</a>.</p>
<img src="figures/using_jena_with_eclipse-012.png" class="img-responsive" alt="Fuseki running in Eclipse">
<p>Now you should also be able to debug Jena, modify the source code and build the
project again, or import or create other projects into your workspace, and use them
with the latest version of Jena.</p>

  </article>
  
  <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#setting-up-your-environment">Setting up your environment</a></li>
    <li><a href="#getting-the-source-code">Getting the source code</a></li>
    <li><a href="#importing-the-source-code-into-eclipse">Importing the source code into Eclipse</a></li>
  </ul>
</nav>
  </aside>
</main>

        </div>
    </div>
</div>

<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2024 The Apache Software Foundation, Licensed under the
            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        </p>
        <p>
            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
            The Apache Software Foundation.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>

<script src="/js/popper.min.js.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>

<script type="text/javascript">
(function() {
    'use strict'
    
    

    const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
    if (links !== undefined && links !== null) {
        for (const link of links) {
            
            link.classList.add('active')
            let parentElement = link.parentElement
            let count = 0
            const levelsLimit = 4
            
            
            
            
            
            while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
                if (parentElement.tagName === 'LI') {
                    
                    
                    
                    parentElement.querySelector('a:first-child').classList.add('active')
                }
                parentElement = parentElement.parentElement
                count++
            }
        }
    }
})()
</script>

</body>
</html>
