<!DOCTYPE html>
<!--
 -
 - Licensed to the Apache Software Foundation (ASF) under one
 - or more contributor license agreements.  See the NOTICE file
 - distributed with this work for additional information
 - regarding copyright ownership.  The ASF licenses this file
 - to you under the Apache License, Version 2.0 (the
 - "License"); you may not use this file except in compliance
 - with the License.  You may obtain a copy of the License at
 -
 -   http://www.apache.org/licenses/LICENSE-2.0
 -
 - Unless required by applicable law or agreed to in writing,
 - software distributed under the License is distributed on an
 - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 - KIND, either express or implied.  See the License for the
 - specific language governing permissions and limitations
 - under the License.
 -
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>2.4.&#160;Installation on Windows - Apache Qpid&#8482;</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
    <script type="text/javascript">var _deferredFunctions = [];</script>
    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
    <!--[if lte IE 8]>
      <link rel="stylesheet" href="/ie.css" type="text/css"/>
      <script type="text/javascript" src="/html5shiv.js"></script>
    <![endif]-->

    <!-- Redirects for `go get` and godoc.org -->
    <meta name="go-import"
          content="qpid.apache.org git https://gitbox.apache.org/repos/asf/qpid-proton.git"/>
    <meta name="go-source"
          content="qpid.apache.org
https://github.com/apache/qpid-proton/blob/go1/README.md
https://github.com/apache/qpid-proton/tree/go1{/dir}
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
  </head>
  <body>
    <div id="-content">
      <div id="-top" class="panel">
        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>

        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>

        <ul id="-global-navigation">
          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
          <li><a href="/documentation.html">Documentation</a></li>
          <li><a href="/download.html">Download</a></li>
          <li><a href="/discussion.html">Discussion</a></li>
        </ul>
      </div>

      <div id="-menu" class="panel" style="display: none;">
        <div class="flex">
          <section>
            <h3>Project</h3>

            <ul>
              <li><a href="/overview.html">Overview</a></li>
              <li><a href="/components/index.html">Components</a></li>
              <li><a href="/releases/index.html">Releases</a></li>
            </ul>
          </section>

          <section>
            <h3>Messaging APIs</h3>

            <ul>
              <li><a href="/proton/index.html">Qpid Proton</a></li>
              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
            </ul>
          </section>

          <section>
            <h3>Servers and tools</h3>

            <ul>
              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
            </ul>
          </section>

          <section>
            <h3>Resources</h3>

            <ul>
              <li><a href="/dashboard.html">Dashboard</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
              <li><a href="/resources.html">More resources</a></li>
            </ul>
          </section>
        </div>
      </div>

      <div id="-search" class="panel" style="display: none;">
        <form action="http://www.google.com/search" method="get">
          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
          <button type="submit">Search</button>
          <a href="/search.html">More ways to search</a>
        </form>
      </div>

      <div id="-middle" class="panel">
        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-java-6.1.5/index.html">Qpid for Java 6.1.5</a></li><li><a href="/releases/qpid-java-6.1.5/java-broker/book/index.html">Apache Qpid Broker for Java</a></li><li>2.4.&#160;Installation on Windows</li></ul>

        <div id="-middle-content">
          <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">2.4.&#160;Installation on Windows</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Installation-Download.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;2.&#160;Installation</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Installation-InstallationUnix.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Installation-InstallationWindows"></a>2.4.&#160;Installation on Windows</h2></div></div></div><p> Firstly, verify that your JVM is installed properly by following <a class="link" href="Java-Broker-Miscellaneous.html#Java-Broker-Miscellaneous-JVM-Verification-Windows" title="E.1.1.&#160;Verify JVM on Windows">these instructions.</a>
    </p><p>Now chose a directory for Qpid broker installation. This directory will be used for the
      Qpid JARs and configuration files. It need not be the same location as the work directory used
      for the persistent message store or the log file (you will choose this location later). For
      the remainder this example we will assume that location c:\qpid has been chosen.</p><p>Next extract the qpid-broker-6.1.5-bin.zip package into the directory, using either
      the zip file handling offered by Windows (right click the file and select 'Extract All') or a
      third party tool of your choice.</p><p>The extraction of the broker package will have created a directory
      qpid-broker\\6.1.5 within c:\qpid</p><pre class="screen">
 Directory of c:\qpid\qpid-broker\\6.1.5

25/11/2015  11:29    &lt;DIR&gt;          .
25/11/2015  11:29    &lt;DIR&gt;          ..
25/11/2015  10:56    &lt;DIR&gt;          bin
03/07/2015  08:06    &lt;DIR&gt;          etc
25/11/2015  11:25    &lt;DIR&gt;          lib
25/11/2015  10:56            28,143 LICENSE
25/11/2015  10:56             3,409 NOTICE
29/04/2015  09:13               116 README.txt
3 File(s)         31,668 bytes
5 Dir(s)  25,981,767,680 bytes free
</pre><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Installation-InstallationWindows-SettingQPIDWORK"></a>2.4.1.&#160;Setting the working directory</h3></div></div></div><p>Qpid requires a work directory. This directory is used for the default location of the
        Qpid log file and is used for the storage of persistent messages. The work directory can be
        set on the command-line (for the lifetime of the command interpreter), but you will normally
        want to set the environment variable permanently via the Advanced System Settings in the
        Control Panel.</p><pre class="screen">set QPID_WORK=C:\qpidwork</pre><p>If the directory referred to by <a class="link" href="Java-Broker-Appendix-Environment-Variables.html#Java-Broker-Appendix-Environment-Variables-Qpid-Work">QPID_WORK</a> does not
        exist, the Broker will attempt to create it on start-up.</p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Installation-Download.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Installation.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Installation-InstallationUnix.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">2.3.&#160;Download&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;2.5.&#160;Installation on UNIX platforms</td></tr></table></div></div>

          <hr/>

          <ul id="-apache-navigation">
            <li><a href="http://www.apache.org/">Apache</a></li>
            <li><a href="http://www.apache.org/licenses/">License</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
            <li><a href="/security.html">Security</a></li>
            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
          </ul>

          <p id="-legal">
            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
            The Apache Software Foundation; Licensed under
            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
            Proton, Apache, the Apache feather logo, and the Apache Qpid
            project logo are trademarks of The Apache Software
            Foundation; All other marks mentioned may be trademarks or
            registered trademarks of their respective owners
          </p>
        </div>
      </div>
    </div>
  </body>
</html>
