<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html lang="en">
<HEAD>

<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<title>Upgrading Eclipse</title>
</head>

<BODY BGCOLOR="#ffffff">

<h1>Upgrading Eclipse</h1>
<p>
If you are upgrading to a newer release of Eclipse from an older release, there are
simple steps to follow to migrate your workspace to the new release.  Your workspace
is the directory on disk that contains all of your project files, as well as meta-data such
as preferences you may have customized.  The steps to follow for upgrading depend on
whether or not you used the &quot;-data&quot; command line argument when starting 
Eclipse.  The &quot;-data&quot; argument is recommended because it clearly specifies the 
location of your workspace.
</p>
<p><i>Tip:</i> It doesn't hurt to make a backup of your workspace before
upgrading.  After you've upgraded your workspace, you won't be able to use it
again with an older version of Eclipse.  If you ever want to go &quot;back in time&quot;
to an earlier release, you'll need that backup!
</p>

<p>The workspace chooser dialog allows you to choose the location of your
workspace.  This dialog appears on first startup in the absence of a -data argument. 
The default location provided by this dialog will be a "workspace" child of your home directory 
(for example, C:\Documents and Settings\UserName\workspace.)</p> 
<p>Unless you have an existing workspace from a previous Eclipse version, you can
keep this default or choose some other location.  You should not store your workspace
inside the Eclipse install directory, because that will make it more difficult to upgrade
to a newer version of Eclipse.  You should not copy or move the workspace directory, because it may
contain metadata with absolute file system paths, which will be invalid if the workspace is copied elsewhere.</p>
<p>In Eclipse 3.0 and earlier, Eclipse's default location for the workspace was 
  under the Eclipse directory. For example, if the eclipse.exe was in D:\eclipse-SDK-3.0.1\eclipse, 
  then the default workspace location would be D:\eclipse-SDK-3.0.1\eclipse\workspace.</p>
<p>To load a workspace created using 3.0 or earlier, just point to 
  the old workspace directory using the workspace chooser, whether it's under 
  the old install directory or elsewhere.</p>
<p>&nbsp;</p>
<h2>Using the &quot;-data&quot; argument</h2>
<p>
If you were previously using the &quot;-data&quot; argument to start Eclipse, your 
upgrade path is much easier:</p>
<ol>
<li>Install the new version of Eclipse in a new location, separate from any old version
of Eclipse.</li>
<li>Start this new version of Eclipse, using the &quot;-data&quot; command line argument to 
point to your old workspace location.</li>
</ol>
<p>See the example in the previous section for an illustration.</p>

<h2>Adding third party plug-ins</h2>
<p>
If you have installed extra plug-ins in your Eclipse environment, you will need to add
these new plug-ins to each new build or version of Eclipse you install.  Before you do
this, refer to the documentation for those plug-ins to ensure they are compatible
with the version of Eclipse you are moving to.  There are several ways to add these
extra plug-ins to your new Eclipse install:</p>
<ol>
<li>Copy the directories for each plug-in into the &quot;dropins&quot; directory of your
new Eclipse version.</li>
<li>Use an Eclipse update site to re-install those extra plug-ins or features in the
new version of Eclipse.</li>
<li>If you are using product extensions, simply copy the &quot;links&quot; directory
into the new Eclipse version install directory.  For more details on product extensions,
see the documentation in the Platform Plug-in Developer Guide, under <b>Programmer's
Guide &gt; Packaging and delivering Eclipse based products &gt; Product extensions</b>.</li>
</ol>
</body>
</html>