get-started.html (206 lines of code) (raw):

--- layout: page title: Apache Karaf - Get started permalink: /get-started --- <main role="main"> <div class="container pt-5 pb-3"> <div class="jumbotron p-3 p-md-5 text-white bg-primary"> <div class="col-md-12 px-0"> <h1 class="display-4 font-italic">Get started with Apache Karaf is very easy!</h1> </div> </div> </div> <main role="main"> <div class="container"> <!-- Easy to install --> <div class="row mb-2 mt-3"> <div class="col"> <h2 class="pb-3 mb-4 font-italic border-bottom"><i class="fas fa-box"></i> Easy to install</h2> <p>The only prerequisite to start with Karaf is a Java SE 8 / 9 / 10 / 11 environment to run. Refer to <a target="_blank" href="https://www.oracle.com/technetwork/java/javase">https://www.oracle.com/technetwork/java/javase</a> for details on how to download and install Java SE 1.8 or greater.</p> </div> </div> <div class="row mb-2 mt-2"> <div class="col"> <h4 class="pb-3 mb-1">Download and extract</h4> <ol> <li>Open a Web browser and access the following URL: <a target="_blank" href="https://karaf.apache.org/download"> https://karaf.apache.org/download.html</a>.</li> <li>Download the binary distribution of Karaf Runtime that matches your system (zip for windows, tar.gz for unixes).</li> <li>Extract the archive to a new folder on your hard drive. For example in <code>/opt/karaf</code>, from now on this directory will be referenced as <code>$KARAF_HOME</code>.</li> </ol> </div> </div> <div class="row mb-5 mt-2"> <div class="col"> <h4 class="pb-3 mb-1">Start and connect</h4> <ol> <li>Open a command line console and change the directory to <code>$KARAF_HOME</code>.</li> <li>To start the server, run the following command on Unix: <pre class="alert alert-primary"><code>$KARAF_HOME/bin/karaf</code></pre> Respectively on Windows: <pre class="alert alert-primary"><code>$KARAF_HOME\bin\karaf.bat</code></pre> </li> <li>You are now connected to the Karaf shell!</li> </ol> <p> <pre class="alert alert-primary"><code> __ __ ____ / //_/____ __________ _/ __/ / ,< / __ `/ ___/ __ `/ /_ / /| |/ /_/ / / / /_/ / __/ /_/ |_|\__,_/_/ \__,_/_/ Apache Karaf (4.3.5) Hit '<tab>' for a list of available commands and '[cmd] --help' for help on a specific command. Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown Karaf. karaf@root()> </code></pre> </p> <p><i class="fa fa-info-circle"></i> If you want to launch your Karaf instance in background, run on Unix: <pre class="alert alert-primary"><code>$KARAF_HOME/bin/start</code></pre> </p> <p>Respectively on Windows: <pre class="alert alert-primary"><code>$KARAF_HOME\bin\start.bat</code></pre> </p> </div> </div> <!-- Easy to manage --> <div class="row mb-2 mt-3"> <div class="col"> <h2 class="pb-3 mb-4 font-italic border-bottom"><i class="fas fa-laptop"></i> Easy to manage</h2> <p>You can manage your Karaf instance with the shell console to a local instance or to a remote instance using the ssh client.</p> </div> </div> <div class="row mb-2 mt-2"> <div class="col"> <h4 class="pb-3 mb-1">Connect to the shell console</h4> <ol> <li>Open a command line console and change the directory to <code>$KARAF_HOME</code>.</li> <li>To connect to the local instance, run in Unix: <pre class="alert alert-primary"><code>$KARAF_HOME/bin/client</code></pre> Respectively on Windows: <pre class="alert alert-primary"><code>$KARAF_HOME\bin\client.bat</code></pre> </li> </ol> <p><i class="fa fa-info-circle"></i> To connect to a remote instance, run:</p> <pre class="alert alert-primary"><code>$KARAF_HOME/bin/client -a "IP" -p "PORT"</code></pre> <p>You can also use any regular <code>ssh</code> client.</p> </div> </div> <div class="row mb-2 mt-2"> <div class="col"> <h4 class="pb-3 mb-1">Shell console basics</h4> <p> You can now run your first command. Simply type the <code>tab</code> key in the console. </p> <pre class="alert alert-primary"><code> karaf@root()> karaf: do you wish to see to see all 356 possibilities (219 lines)? karaf@root()> Display all 294 possibilities? (y or n) ... shell:logout shell:more shell:new shell:printf shell:sleep shell:sort shell:source shell:stack-traces-print shell:tac shell:tail shell:threads shell:watch shell:wc shell:while shutdown sleep sort source ssh ssh ssh-host-change ssh-port-change ssh:ssh stack-traces-print start start-level status stop su sudo system system:framework system:name system:property system:shutdown system:start-level system:version tac tail threads tree-show uninstall update user-add user-delete user-list version version-list wait watch wc while </code></pre> <p>You can then grab more specific help for a given command using the <code>--help</code> option for this command:</p> <pre class="alert alert-primary"><code> karaf@root()> bundle:list --help DESCRIPTION bundle:list Lists all installed bundles. SYNTAX bundle:list [options] [ids] ARGUMENTS ids The list of bundle (identified by IDs or name or name/version) separated by whitespaces OPTIONS -name, -n Show bundle name -u Shows the update locations -r Shows the bundle revisions --no-ellipsis -l Show the locations -s Shows the symbolic name --context, -c Use the given bundle context (defaults to 0) --help Display this help message -t Specifies the bundle threshold; bundles with a start-level less than this value will not get printed out. --no-format Disable table rendered output </code></pre> <p> Note that the console supports tab completion so if you start typing a command it will show all possible completions and also auto complete if there is only one completion. </p> </div> </div> <div class="row mb-2 mt-2"> <div class="col"> <h4 class="pb-3 mb-1">Stop</h4> You have multiple options for shuting down your Karaf instance: <ul> <li>For a background running instance, run the command on Unix: <pre class="alert alert-primary"><code>$KARAF_HOME/bin/stop</code></pre> Respectively on Windows: <pre class="alert alert-primary"><code>$KARAF_HOME\bin\stop.bat</code></pre> </li> <li>To stop Karaf from the console, enter <code>Ctrl+D</code>.</li> <li>Alternatively, you can also run the following command: <pre class="alert alert-primary"><code> karaf@root()> feature:install system karaf@root()> system:shutdown Confirm: halt instance root (yes/no): yes karaf@root()> </code></pre> </li> </ul> <p><i class="fa fa-info-circle"></i> Halt is also an alias for <code>system:shutdown</code> <pre class="alert alert-primary"><code>karaf@root()> halt</code></pre> </p> </div> </div> <!-- Easy to develop --> <div class="row mb-2 mt-3"> <div class="col"> <h2 class="pb-3 mb-4 font-italic border-bottom"><i class="fas fa-code"></i> Easy to develop</h2> <p>You are now ready to develop your first application!</p> <p>A list of examples are packaged in the distribution (<code>$KARAF_HOME/examples</code>). You can have an overview of this examples in the documentation page <a href="/documentation.html">here</a>. </p> </div> </div> <div class="row mb-2 mt-2"> <div class="col"> <h4 class="pb-3 mb-1">Tips for developers</h4> <p>You can activate debug mode by adding the parameter <code>debug</code> to the command line: <pre class="alert alert-primary"><code>$KARAF_HOME/bin/karaf debug</code></pre></li> Then you can connect to the instance from remote with your IDE on the port <code>5005</code>. </p> <p>After building your bundle with maven, you can install it from the console:</p> <pre class="alert alert-primary"><code>karaf@root()> bundle:install -s mvn:groupId/artifactId/1.0.0-SNAPSHOT</code></pre> <p>The <code>bundle:watch</code> command enables watching the local Maven repository for updates on bundles. If the bundle file changes on the Maven repository, Apache Karaf will automatically update the bundle.</p> <pre class="alert alert-primary"><code>karaf@root()> bundle:watch *</code></pre> <p>From now, your bundle will automatically update by Karaf after each local build.</p> </div> </div> <!-- Want more --> <div class="row mb-2 mt-3"> <div class="col"> <h2 class="pb-3 mb-4 font-italic border-bottom"><i class="far fa-comments"></i> What? You thought it was difficult to develop with Karaf?</h2> <p>You want more! Ok, let's going deeper with the manual <a href="/manual/latest" target="_blank">here</a>.</p> </div> </div> </div> </main>