<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
  http-equiv="Content-Type"
  content="text/html; charset=UTF-8" />
<title>Eclipse Project Release Notes 4.17</title>
<!-- Please validate as "xhtml1 strict", at
https://validator.w3.org/check?uri=http%3A%2F%2Fwww.eclipse.org%2Feclipse%2Fdevelopment%2Freadme_eclipse_4.17.html;ss=1
(It must be "on website" to validate.)
-->
</head>
<body>
  <h1>
    <a
      class="mozTocH1"
      name="mozTocId299852">Eclipse Project Release Notes</a>
  </h1>
  <p>
    <a
      class="mozTocH1"
      name="mozTocId299852">Release 4.17</a>
  </p>
  <p>
    <a
      class="mozTocH1"
      name="mozTocId299852">Last revised August 26, 2020</a>
  </p>
  <!-- 
This following link to www.eclipse.org should be commented out
or removed in final version of the 
"web version" of the readme, since it does not make sense to 
have there. But in the "product's readme" it will point people 
to "the latest version" since there _might_ be changes made 
after the release.
  <p>
    The latest version of this document can be found on the web at <a href="https://www.eclipse.org/eclipse/development/readme_eclipse_4.17.php">Eclipse Release Notes 4.17</a>. There may or may
    not be changes made after the product is released. You can tell by checking the "last revised" date near the top of this page.
  </p>
-->

  <p style="text-align: left; font-weight: bold;">
    <a
      class="mozTocH1"
      name="mozTocId299852"> This software is OSI Certified Open Source Software.<br /> OSI Certified is a certification mark of the Open Source Initiative.
    </a>
  </p>
  <h2 id="TargetOperatingEnvironments1">
    <a
      class="mozTocH2"
      name="mozTocId438134" />
  </h2>
  <ol id="mozToc">
    <!--mozToc h1 1 h2 2 h3 3 h4 4 h5 5 h6 6-->
    <li><a href="#mozTocId299852">Eclipse Project Release Notes</a>
      <ol>
        <li><a href="#mozTocId315234">Target Operating Environments</a></li>
        <li><a href="#mozTocId569479">Compatibility with Previous Releases</a>
          <ol>
            <li><a href="#mozTocId324309">Compatibility of Release 4.17 with 4.16</a></li>
          </ol></li>
        <li><a href="#mozTocId214943">Known Issues</a>
          <ol>
            <li><a href="#mozTocId758150">General problems</a></li>
            <li><a href="#mozTocId559320">General - Startup</a>
              <ol>
                <li><a href="#mozTocId693657">Installation/Configuration issues that can cause Eclipse to fail start</a></li>
                <li><a href="#mozTocId337416"> Invalid characters in install directory prevents Eclipse from starting </a></li>
                <li><a href="#mozTocId639565">Hanging during class loading when out of permanent generation memory</a></li>
              </ol></li>
            <li><a href="#mozTocId148479">General - GCJ</a>
              <ol>
                <li><a href="#mozTocId584602">Problems with classloaders in created threads</a></li>
                <li><a href="#mozTocId403443">Deadlock creating executable extension in Plugin.startup</a></li>
                <li><a href="#mozTocId984286">Potential Problems Converting Plug-in Manifests</a></li>
                <li><a href="#mozTocId993987">Location for Debug Options File on Mac OS</a></li>
                <li><a href="#mozTocId808188">Issues with JNI that use FindClass</a></li>
              </ol></li>
            <li><a href="#mozTocId324774">Platform - Ant</a>
              <ol>
                <li><a href="#mozTocId480194">Custom Ant tasks and Ant types must be separate from plug-in library JARs</a></li>
                <li><a href="#mozTocId912215">XDoclet support from within Eclipse</a></li>
                <li><a href="#mozTocId31051">Ant Editor code completion based on Ant 1.6.x</a></li>
                <li><a href="#mozTocId925603">Setting build loggers not supported when debugging Ant builds</a></li>
                <li><a href="#mozTocId669417">Renaming an External Tool builder set to run during auto-build will cause errors</a></li>
                <li><a href="#mozTocId772119">Slow typing/saving of the Ant editor with imports that define numerous macrodefs</a></li>
                <li><a href="#mozTocId715004">Ant 1.8.x reports missing libraries as build failures</a></li>
              </ol></li>
            <li><a href="#mozTocId876322">Platform - User Assistance</a>
              <ol>
                <li><a href="#mozTocId828477">Welcome page not displayed properly (Linux/Unix)</a></li>
                <li><a href="#mozTocId26110">Help browser tool bar buttons do not work for some documents</a></li>
                <li><a href="#mozTocId324012">Help documents not displayed in a browser or very slow document loading (Windows only)</a></li>
                <li><a href="#mozTocId227368">Working disconnected from the network (Windows only)</a></li>
                <li><a href="#mozTocId121403">Using Internet Explorer in offline mode (Windows only)</a></li>
              </ol></li>
            <li><a href="#mozTocId683637">Platform - UI</a>
              <ol>
                <li><a href="#mozTocId348035">Dirty state not tracked properly for OLE documents (Windows only)</a></li>
                <li><a href="#mozTocId878052">OLE document crashes can cause Eclipse to also crash (Windows only)</a></li>
                <li><a href="#mozTocId452707">Toolbars only containing contributed controls exhibit display errors on Mac/Linux</a></li>
                <li><a href="#mozTocId443682">Allocating enough memory and solving OutOfMemoryError</a></li>
                <li><a href="#mozTocId862142">Capabilities and Activities don't affect the menus and toolbars</a></li>
              </ol></li>
            <li><a href="#mozTocId554478">Platform - SWT</a>
              <ol>
                <li><a href="#mozTocId534426">Usage of swt.autoScale and GDK_SCALE flag on GTK platforms</a></li>
                <li><a href="#mozTocId554478">Non-uniform scaling of text vs. icons when using intermediate scaling factors on high-DPI displays</a></li>
                <li><a href="#mozTocId69222">Eclipse plug-in based on the SWT Browser throws exception</a></li>
                <li><a href="#mozTocId238090">Eclipse icon is duplicated in task-bar on Windows</a></li>
                <li><a href="#mozTocId414883">BIDI Segments in Text controls</a></li>
                <li><a href="#mozTocId518357">Block Selection functionality provided by StyledText is not BIDI aware</a></li>
              </ol></li>
            <li><a href="#mozTocId805874">Platform - Install/Update</a>
              <ol>
                <li><a href="#mozTocId914600">Manually installing features and plug-ins on a FAT file system (Windows only)</a></li>
                <li><a href="#mozTocId648565">Connecting to untrusted sites using https</a></li>
                <li><a href="#mozTocId104394">Extension location is lost if the install path changes</a></li>
              </ol></li>
            <li><a href="#mozTocId428861">Java development tools (JDT)</a>
              <ol>
                <li><a href="#mozTocId180305">Multiple regions formatting in a given source snippet</a></li>
                <li><a href="#mozTocId589358">Searching for constant field references</a></li>
                <li><a href="#mozTocId577868">Cut, copy, paste not working for linked resources in views showing Java elements</a></li>
                <li><a href="#mozTocId554543">Java working sets not working correctly for elements from JRE system library container</a></li>
                <li><a href="#mozTocId157019">Breakpoints unreliable running Sun 1.6.0_14</a></li>
                <li><a href="#mozTocId440090">Suspend on uncaught exception overrides exception breakpoint location filters</a></li>
                <li><a href="#mozTocId812347">Running Java programs with non-Latin-1 characters in package or class names</a></li>
                <li><a href="#mozTocId638407">Cannot run or debug class in a project with GB18030 characters in project name</a></li>
                <li><a href="#mozTocId994970">Cannot detect installed JRE with GB18030 characters in path name</a></li>
                <li><a href="#mozTocId324283">Cannot generate Javadoc for packages with GB18030 characters in the name</a></li>
                <li><a href="#mozTocId524553">Unable to debug stack overflows</a></li>
                <li><a href="#mozTocId162517">Evaluation limitation</a></li>
                <li><a href="#mozTocId408387">Missing debug attributes</a></li>
                <li><a href="#mozTocId330034">Using Hot Code Replace</a></li>
                <li><a href="#mozTocId976120">Scrapbook</a></li>
                <li><a href="#mozTocId666507">Debugging over slow connections</a></li>
                <li><a href="#mozTocId207158">Updating of inspected values</a></li>
                <li><a href="#mozTocId821393">Stepping over native methods that perform I/O</a></li>
                <li><a href="#mozTocId606104">Java Annotation Processing</a></li>
                <li><a href="#mozTocId188069">Java indexing encounters problems when a folder is used both as a source and a class folder</a></li>
              </ol></li>
            <li><a href="#mozTocId25456">Plug-in Development Environment (PDE)</a>
              <ol>
                <li><a href="#mozTocId179699">Feature manifest editor does not preserve all comments</a></li>
                <li><a href="#mozTocId243421">PDE will not unzip source zips of some plug-ins</a></li>
                <li><a href="#mozTocId722932">Emacs key bindings do not work in manifest editor fields</a></li>
                <li><a href="#mozTocId828449">Export of plug-in may silently drop classes</a></li>
                <li><a href="#mozTocId89714">Compilation errors when exporting projects not stored outside of the workspace</a></li>
                <li><a href="#mozTocId270371">Headless build needs to be run from a fully qualified path</a></li>
                <li><a href="#mozTocId73293">Importing in Eclipse application fails if plug-in exists in host workspace</a></li>
                <li><a href="#mozTocId914239">Reusing a workspace after changing architectures silently breaks PDE models</a></li>
                <li><a href="#mozTocId624312">Missing @since tag API Tools problems on interface fields containing @noreference tag</a></li>
               </ol></li>
                
              </ol></li>
          </ol></li>
        <li><a href="#mozTocId19817">Running Eclipse</a>
          <ol>
            <li><a href="#mozTocId60052">Allocating enough memory and solving OutOfMemoryErrors</a></li>
            <li><a href="#mozTocId735187">Selecting a workspace</a></li>
            <li><a href="#mozTocId620725">Specifying the Java virtual machine</a></li>
            <li><a href="#mozTocId928700">Mac OS X</a></li>
            <li><a href="#mozTocId221199">Shared Install</a></li>
          </ol></li>
        <li><a href="#mozTocId575572">Upgrading Workspace from a Previous Release</a>
          <ol>
            <li><a href="#mozTocId401691">Users who don't use "-data"</a></li>
            <li><a href="#mozTocId197750">Users who do use "-data"</a></li>
            <li><a href="#mozTocId839433">Users who use User Libraries or classpath containers that contain JARs referencing other libraries via Class-Path in the MANIFEST.MF</a></li>
            <li><a href="#mozTocId623237">Dropped in bundles may not resolve after upgrade</a></li>
          </ol></li>
        <li><a href="#mozTocId638978">Interoperability with Previous Releases</a>
          <ol>
            <li><a href="#mozTocId759237">Interoperability of Release 4.17 with previous releases</a>
              <ol>
                <li><a href="#mozTocId226004">Sharing projects between heterogeneous Eclipse 4.17 and 4.16</a></li>
                <li><a href="#mozTocId574781">Using Eclipse 4.17 to develop plug-ins that work in Eclipse 4.16</a></li>
              </ol>
            </li>
          </ol></li>
        <li><a href="#mozTocId317294">Appendix: Execution Environment by Bundle</a></li>
  </ol>
  <h2 id="TargetOperatingEnvironments2">
    <a
      class="mozTocH2"
      name="mozTocId315234" />Target Operating Environments
  </h2>
  <p>In order to remain current, each Eclipse Project release targets reasonably current operating environments.</p>
  <p>Most of the Eclipse SDK is "pure" Java code and has no direct dependence on the underlying operating system. The chief dependence is therefore on the Java Platform itself. Portions are
    targeted to specific classes of operating environments, requiring their source code to only reference facilities available in particular class libraries (e.g. J2ME Foundation 1.1, J2SE 1.4, Java
    5, etc).</p>
  <p>In general, the 4.17 release of the Eclipse Project is developed on Java SE 11 VMs. As such, the Eclipse SDK as a whole is targeted at all modern, desktop Java VMs.</p>
  <p>
    <a href="#appendix">Appendix 1</a> contains a table that indicates the class library level required for each bundle.
  </p>
  <p>
    There are many different implementations of the Java Platform running atop a variety of operating systems. We focus our testing on a handful of popular combinations of operating system and Java
    Platform; these are our <em>reference platforms</em>. Eclipse undoubtedly runs fine in many operating environments beyond the reference platforms we test. However, since we do not systematically
    test them we cannot vouch for them. Problems encountered when running Eclipse on a non-reference platform that cannot be recreated on any reference platform will be given lower priority than
    problems with running Eclipse on a reference platform.
  </p>
  <p>
    Eclipse 4.17 is tested and validated on a number of reference platforms. For the complete list, see <a
      href="https://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_4_17.xml#target_environments">Target Environments in the
      4.17 Plan</a>.
  </p>
  <p>
    As stated above, <i>we expect that Eclipse works fine on other current Java VM and OS versions but we cannot flag these as reference platforms without significant community support for testing
      them.</i>
  </p>
  <p>The Eclipse SDK is designed as the basis for internationalized products. The user interface elements provided by the Eclipse SDK components, including dialogs and error messages, are
    externalized. The English strings are provided as the default resource bundles.</p>
  <p>Latin-1, DBCS, and BiDi locales are supported by the Eclipse SDK on all reference platforms.</p>
  <p>The Eclipse SDK supports GB 18030 (level 1), the Chinese code page standard, on Windows, Linux and the Macintosh.</p>
  <p>German and Japanese locales are tested.</p>
  <h2 id="Compatibility">
    <a
      class="mozTocH2"
      name="mozTocId569479">Compatibility with Previous Releases</a>
  </h2>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId324309">Compatibility of Release 4.17 with 4.16</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId324309">Eclipse 4.17 is compatible with Eclipse 4.16 (and all earlier 4.x and 3.x versions).</a>
  </p>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId324309"> <strong>API Contract Compatibility:</strong> Eclipse SDK 4.17 is upwards contract-compatible with Eclipse SDK 4.16 except in those areas noted in the
    </a><a href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_17_porting_guide.html"><em>Eclipse 4.17 Plug-in Migration Guide</em></a>. Programs that use affected APIs and extension points
    will need to be ported to Eclipse SDK 4.17 APIs. Downward contract compatibility is not supported. There is no guarantee that compliance with Eclipse SDK 4.17 APIs would ensure compliance with
    Eclipse SDK 4.16 APIs. Refer to <a href="https://wiki.eclipse.org/Evolving_Java-based_APIs"><em>Evolving Java-based APIs</em></a> for a discussion of the kinds of API changes that maintain contract
    compatibility.
  </p>
  <p>
    <strong>Binary (plug-in) Compatibility:</strong> Eclipse SDK 4.17 is upwards binary-compatible with Eclipse SDK 4.16 except in those areas noted in the <a
      href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_17_porting_guide.html"><em>Eclipse 4.17 Plug-in Migration Guide</em> </a>. Downward plug-in compatibility is not supported.
    Plug-ins for Eclipse SDK 4.17 will not be usable in Eclipse SDK 4.16. Refer to <a href="https://wiki.eclipse.org/Evolving_Java-based_APIs"> <em>Evolving Java-based APIs</em></a> for a discussion of
    the kinds of API changes that maintain binary compatibility.
  </p>
  <p>
    <strong>Source Compatibility:</strong> Eclipse SDK 4.17 is upwards source-compatible with Eclipse SDK 4.16 except in the areas noted in the <a
      href="http://www.eclipse.org/eclipse/development/porting/eclipse_4_17_porting_guide.html"><em>Eclipse 4.17 Plug-in Migration Guide</em> </a>. This means that source files written to use Eclipse
    SDK 4.17 APIs might successfully compile and run against Eclipse SDK 4.16 APIs, although this is not guaranteed. Downward source compatibility is not supported. If source files use new Eclipse SDK
    APIs, they will not be usable with an earlier version of the Eclipse SDK.
  </p>
  <p>
    <strong>Workspace Compatibility:</strong> Eclipse SDK 4.17 is upwards workspace-compatible with earlier 3.x and 4.x versions of the Eclipse SDK unless noted. This means that workspaces and projects
    created with Eclipse SDK 4.16, 4.15, 4.14, 4.13, 4.12, 4.11, 4.10, 4.9, 4.8, 4.7, 4.6, 4.5, 4.4, 4.3, 4.2, ... 3.0 can be successfully opened by Eclipse SDK 4.17 and upgraded to a 4.17 workspace. This includes both hidden metadata, which is localized to a
    particular workspace, as well as metadata files found within a workspace project (e.g., the .project file), which may propagate between workspaces via file copying or team repositories. Individual
    plug-ins developed for Eclipse SDK 4.17 should provide similar upwards compatibility for their hidden and visible workspace metadata created by earlier versions; 4.17 plug-in developers are
    responsible for ensuring that their plug-ins recognize metadata from earlier versions and process it appropriately. User interface session state may be discarded when a workspace is upgraded.
    Downward workspace compatibility is not supported. A workspace created (or opened) by a product based on Eclipse 4.17 will be unusable with a product based on an earlier version of Eclipse. Visible
    metadata files created (or overwritten) by Eclipse 4.17 will generally be unusable with earlier versions of Eclipse.
  </p>
  <p>
    <strong>Non-compliant usage of API's</strong>: All non-API methods and classes, and certainly everything in a package with "internal" in its name or x-internal in the bundle manifest entry, are
    considered implementation details which may vary between operating environment and are subject to change without notice. Client plug-ins that directly depend on anything other than what is
    specified in the Eclipse SDK API are inherently unsupportable and receive no guarantees about compatibility within a single release much less with earlier releases. Refer to <a
      href="https://www.eclipse.org/articles/Article-API-Use/index.html"> <em>How to Use the Eclipse API</em></a> for information about how to write compliant plug-ins.
  </p>
  <h2 id="KnownIssues">
    <a
      class="mozTocH2"
      name="mozTocId214943">Known Issues</a>
  </h2>
  <p>
    <a
      class="mozTocH2"
      name="mozTocId214943"> Note: Bug numbers refer to the Eclipse project bug database at </a><a href="http://dev.eclipse.org/bugs/">http://bugs.eclipse.org/bugs/</a>
  </p>
  <h3 id="I-General">
    <a
      class="mozTocH3"
      name="mozTocId758150">General problems</a>
  </h3>
  <h3 id="I-General-Startup">
    <a
      class="mozTocH3"
      name="mozTocId559320">General - Startup</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId693657">Installation/Configuration issues that can cause Eclipse to fail start</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId693657">Here are some common problems that can cause Eclipse not to start:</a>
  </p>
  <ul>
      <li>Running Eclipse with Java SE 9 and above may require additional configuration. Please refer to <a href="https://wiki.eclipse.org/Configure_Eclipse_for_Java_9">this page</a> for more details.</li>
    <li><a
      class="mozTocH4"
      name="mozTocId693657">As shown </a><a href="#TargetOperatingEnvironments">above</a>, Eclipse 4.17 requires at least a Java SE 11. Perhaps an older version of the VM is being found in your path. To
      explicitly specify which VM to run with, use the Eclipse <code>-vm</code> command-line argument. (See also the <a href="#RunningEclipse">Running Eclipse</a> section below.)</li>
    <li>Running Eclipse on Gentoo Linux may result in the following error message:
      <div style="margin-left: 40px;">
        <code>
          * run-java-tool is not available for sun-jdk-1.6 on i686<br /> * IMPORTANT: some Java tools are not available on some VMs on some architectures
        </code>
      </div> If this occurs, start Eclipse by specifying a -vm argument, either specify the path to a java vm or use: <code>eclipse -vm `java-config</code> --java` (bug <a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=176021">176021</a>)
    </li>
    <li>Eclipse must be installed to a clean directory and not installed over top of a previous installation. If you have done this then please re-install to a new directory. If your workspace is
      in a child directory of your old installation directory, then see the instructions below on "<a href="#Upgrading">Upgrading Workspace from a Previous Release"</a>.
    </li>
    <li>Java sometimes has difficulty detecting whether a file system is writable. In particular, the method java.io.File.canWrite() appears to return true in unexpected cases (e.g., using
      Windows drive sharing where the share is a read-only Samba drive). The Eclipse runtime generally needs a writable configuration area and as a result of this problem, may erroneously detect the
      current configuration location as writable. The net result is that Eclipse will fail to start and depending on the circumstances, may fail to write a log file with any details. To work around
      this, we suggest users experiencing this problem set their configuration area explicitly using the <code>-configuration</code> command line argument. (bug <a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67719">67719</a>)
    </li>
  </ul>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId337416"> <b>Invalid characters in install directory prevents Eclipse from starting</b>
    </a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId337416"> Eclipse will fail to launch if installed in a directory whose path contains certain invalid characters, including :%#&lt;&gt;"!. The workaround is to install Eclipse
      in a directory whose path does not contain invalid characters. (bugs </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=3109">3109</a> and <a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=17281">17281</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId639565">Hanging during class loading when out of permanent generation memory</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId639565"> The Oracle JVM may hang indefinitely during class loading if it runs out of permanent generation memory. This will cause CPU usage to stay at 100% until the process is
      ended. See the section </a><a href="#RunningEclipse">Running Eclipse</a> for details on addressing this VM problem.
  </p>
  <h3 id="I-General-GCJ">
    <a
      class="mozTocH3"
      name="mozTocId148479">General - GCJ</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId148479">GCJ is an effort by the GCC team to provide an open source Java compiler and runtime environment to interpret Java bytecode. Unfortunately, the GCJ runtime environment
      is not an environment that is often tested on by Eclipse developers.</a>
  </p>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId148479">The most common problems surrounding GCJ are:</a>
  </p>
  <ul>
    <li><a
      class="mozTocH3"
      name="mozTocId148479">Eclipse does not start at all</a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId148479">Eclipse throws a 'java.lang.ClassNotFoundException: org.eclipse.core.runtime.Plugin' that can be found in the logs (located in workspace/.metadata/.log)</a></li>
  </ul>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId148479"> The workspace's log file is a good place to check to identify whether GCJ is being used or not. Every Eclipse log session is prepended with information about the
      runtime environment that was used to run Eclipse. The log may include something like the following: <code>java.fullversion=GNU libgcj 4.2.1 (Debian 4.2.1-5)</code>
    </a>
  </p>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId148479"> If Eclipse does start, one can check which runtime environment is being used to run Eclipse by going to <b>Help &gt; About Eclipse SDK &gt; Installation Details
        &gt; Configuration</b>. The <b>About</b> dialog itself can also provide other information, the build identifier can be of particular interest as it is tagged by some distributions. This allows the
      user to identify whether Eclipse was downloaded through the distribution's package management system or directly from the eclipse.org web site. <br /> Such as:<br /> <code>Build id:
        M20070212-1330 (Ubuntu version: 3.2.2-0ubuntu3)</code>
    </a>
  </p>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId148479">The two most common workarounds are:</a>
  </p>
  <ul>
    <li><a
      class="mozTocH3"
      name="mozTocId148479">download the Eclipse binary from eclipse.org directly</a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId148479">run Eclipse using an alternate Java runtime environment</a></li>
  </ul>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId148479">To download Eclipse, try one of the links below:</a>
  </p>
  <ul>
    <li><a href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></li>
    <li><a href="http://download.eclipse.org/eclipse/downloads/">http://download.eclipse.org/eclipse/downloads/</a></li>
  </ul>
  <p>
    It is imperative that 64-bit builds are downloaded and used if a 64-bit Java runtime environment has been installed. Below is a sample tarball names of version 4.17 of the Eclipse SDK packaged
    for 64-bit processors.<br />
    <code>eclipse-SDK-4.17-linux-gtk-x86_64.tar.gz (64-bit)</code>
  </p>
  <p>
    To run Eclipse with an alternate Java runtime environment, the path to the Java virtual machine's binary must be identified. With an Eclipse installation from the distribution, altering the $PATH
    variable to include the path to the alternate Java runtime environment is often not enough as the Eclipse that Linux distributions package often performs a scan internally to pick up GCJ by itself
    whilst ignoring what's on the $PATH. An example of the terminal's output is shown below:<br />
    <code>
      searching for compatible vm...<br /> testing /usr/lib/jvm/java-gcj...found
    </code>
  </p>
  <p>
    Once the path to the virtual machine's binary has been identified, try running Eclipse with the following command:<br />
    <code>./eclipse -vm /path/to/jre/bin/java</code>
  </p>
  <p>
    For an actual example, it might look something like the following:<br />
    <code>
      ./eclipse -vm /usr/lib/jvm/java-11/bin/java<br /> ./eclipse -vm /opt/jdk-11/bin/java
    </code>
  </p>
  <p>
    If this seems to solve the problem, it is likely that the problem really was related to the use of GCJ as the Java runtime for running Eclipse. The eclipse.ini file located within Eclipse's folder
    can be altered to automatically pass this argument to Eclipse at startup. An example of its content is presented below:<br />
    <code>
      -showsplash<br /> org.eclipse.platform<br /> -vm<br /> /opt/jdk-11/bin/java<br /> -vmargs<br /> -Xms256m<br /> -Xmx2048m
    </code>
  </p>
  <p>
    Note that every argument must be on its own line. More information about the eclipse.ini file can be found at <a href="http://wiki.eclipse.org/Eclipse.ini">http://wiki.eclipse.org/Eclipse.ini</a>.
  </p>
  <p>
    If problems persists after downloading an installation of Eclipse from eclipse.org and using a supported Java runtime environment (a list of which may be found <a
      href="#TargetOperatingEnvironments">above</a>), you can seek further assistance through the <a href="https://www.eclipse.org/forums/">forums</a>, the IRC <a
      href="irc://irc.freenode.net/#eclipse">channel</a>, and/or <a href="https://bugs.eclipse.org/bugs/">bugzilla</a>.
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId584602">Problems with classloaders in created threads</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId584602"> There is a known issue with trying to load classes from a newly-created thread using a class loader different from the plug-in class loader. The result will be a <code>ClassNotFoundException</code>
      . As a workaround, do the following:
    </a>
  </p>
  <ol>
    <li><a
      class="mozTocH4"
      name="mozTocId584602">Create a thread in which to run your code.</a></li>
    <li><a
      class="mozTocH4"
      name="mozTocId584602">Send yourThread.setContextClassLoader(yourClassLoader); // you can find your classloader by grabbing a class it loaded (YourPluginClass.class.getClassLoader())</a></li>
    <li><a
      class="mozTocH4"
      name="mozTocId584602">Run your code in the newly created thread.</a></li>
  </ol>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId584602"> If you set the context class loader for the current thread, you are competing with other users of the thread (all of Eclipse), so the results will be unpredictable.
      However, there should be no problem in practice provided you reset the context class loader back to its original value when your use in the current thread is complete. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=8907">8907</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId403443">Deadlock creating executable extension in Plugin.startup</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId403443"> If <code>Plugin.startup</code> code is too complex and performs tasks such as creating an executable extension, a deadlock situation can be created. Only simple
      bookkeeping tasks should be performed in <code>Plugin.startup</code> code. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=5875">5875</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId984286">Potential Problems Converting Plug-in Manifests</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId984286"> If your plug-in ships with a plug-in manifest and not an OSGi bundle manifest, is shipped as a JAR file, and contains a nested JAR file then there may be problems in
      the automatic generation of the bundle manifest file. The packages defined in the nested JAR may not be exported correctly in the <code>Export-packages</code> bundle manifest header. To work
      around this you should ship your plug-in with a bundle manifest. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=97689">97689</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId993987">Location for Debug Options File on Mac OS</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId993987"> If you are running in debug mode on Mac OS, the default location for the .options file is inside the application bundle in the Eclipse.app/Contents/MacOS directory
      (like the eclipse.ini). (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=88782">88782</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId808188">Issues with JNI that use FindClass</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId808188"> There may be issues when using a JNI implementation that uses FindClass in a function where the JNIEnv pointer is not available, such as in a C callback (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125250">125250</a>). The reason is that FindClass, in this case, uses the application class loader to find the class. If the desired class is
    in the classpath used for the application classloader (e.g. defined by the VM argument -cp &lt;classpath&gt;), as it would typically be in a stand-alone application, there is no problem. However,
    under Eclipse, the application classloader does not have access to classes contained in plug-ins. Eclipse uses its own class loader to find classes contained in plug-ins.
  </p>
  <p>The proper plug-in class loader is used by FindClass in JNI functions which are passed the JNIEnv pointer, but not when you have to use AttachCurrentThread to get the JNIEnv pointer. In this
    case the application classloader is used.</p>
  <p>For example, the following will fail because AttachCurrentThread is used to get the JNIEnv pointer:</p>
  <pre>static JavaVM* jvm;  // Global variable<br /><br />void myCallback(void) {<br />    JNIEnv* env;<br />    jvm-&gt;AttachCurrentThread((void**)&amp;env, NULL);<br />    // Fails if some/class is not in the application classloader:<br />    jclass cls = env-&gt;FindClass("some/class");<br />    jmethodID methodID = env-&gt;GetMethodID(cls, "methodName",<br />      "(Ljava/lang/String;)V or whatever signature");<br />    env-&gt;CallVoidMethod(callback, methodID, ...);<br />    jvm-&gt;DetachCurrentThread();<br />  }<br />}</pre>
  <p>A solution is to cache the method ID, for example:</p>
  <pre>static jmethodID mid;  // Global variable<br /><br />JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {<br />...<br />  // Store the JavaVM pointer<br />    jvm = vm;<br /><br />  // Find the class and store the method ID<br />  // Will use the class loader that loaded the JNI library<br />    jclass cls = env-&gt;FindClass(className"some/class");<br />    if(!cls) goto ERR;<br /><br />    mid = env-&gt;GetMethodID(cls, "methodName",<br />      "(Ljava/lang/String;)V or whatever signature");<br />    if(!mid) goto ERR;<br />...<br />}<br /><br />void myCallback(void) {<br />    JNIEnv* env;<br />    jvm-&gt;AttachCurrentThread((void**)&amp;env, NULL);<br />    env-&gt;CallVoidMethod(callback, mid, ...);<br />     // Handle error ...<br />    jvm-&gt;DetachCurrentThread();<br />  }<br />}</pre>
  <h3 id="I-Platform-Ant">
    <a
      class="mozTocH3"
      name="mozTocId324774">Platform - Ant</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId480194">Custom Ant tasks and Ant types must be separate from plug-in library JARs</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId480194"> Including the class files for custom Ant tasks or Ant types in the regular code JAR for your plug-in causes problems. These class files must be provided in a separate
      JAR that is contributed to the <code>org.eclipse.ant.core.antTasks</code> or <code>antTypes</code> extension point (and not declared as a library in the plug-in's manifest). This ensures that
      the Ant tasks and types are loaded by the special Ant class loader and not by a plug-in classloader. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34466">34466</a>).
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId912215">XDoclet support from within Eclipse</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId912215"> Since there are differences when running Ant from the commandline and within Eclipse, some extra steps may be needed to have XDoclet support function correctly within
      Eclipse. Problems may occur creating XDoclet subtasks. The workarounds and full discussion can be found in bug report. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37070">37070</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId31051">Ant Editor code completion based on Ant 1.6.x</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId31051"> Code completion provided by the Ant editor does not respect the user-specified version of org.eclipse.ant.core plug-in or ANT_HOME. Code completion proposals are mostly
      based on Ant 1.6.x with some updates to Ant 1.8.3 (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=193046">bug 193046</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId925603">Setting build loggers not supported when debugging Ant builds</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId925603"> When debugging Ant builds within Eclipse, setting <code>-logger</code> as a program argument will be ignored.
    </a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId669417">Renaming an External Tool builder set to run during auto-build will cause errors</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId669417"> If you rename an existing external tool builder that is configured to run during auto-builds, you will get the following error: Errors during build. Errors running
      builder "Integrated External Tool Builder" on project &lt;PROJECT_NAME&gt;. The builder launch configuration could not be found. The workaround is to first disable the builder for auto-builds
      and then rename the builder. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118294">118294</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId772119">Slow typing/saving of the Ant editor with imports that define numerous macrodefs</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId772119"> The Ant editor is slow on saving with buildfiles that have &lt;import&gt; declarations of buildfiles that have numerous &lt;macrodef&gt;s. See bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=125117">125117</a> for a possible workaround
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId715004">Ant 1.8.x reports missing libraries as build failures</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId715004"> In Ant 1.8.x, if you try to use a task that requires additional libraries and you do not have the libraries on the Ant classpath, the build will now properly report as
      failed. In previous versions of Ant, the build would still report that it had succeeded even though it actually failed to run any of the tasks from additional bundles. See </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344518">bug 344518</a>.
  </p>
  <p>
    For more information on tasks that require additional bundles please refer to the <a href="https://archive.apache.org/dist/ant/RELEASE-NOTES-apache-ant-1.8.2.html">Ant 1.8.2 release notes</a> and
    the <a href="http://ant.apache.org/manual/install.html#optionalTasks">Optional Tasks</a> section in the Ant manual.
  </p>
  <h3 id="I-Platform-User-Assistance">
    <a
      class="mozTocH3"
      name="mozTocId876322">Platform - User Assistance</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId828477">Welcome page not displayed properly (Linux/Unix)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId828477"> The default Welcome implementation is HTML-based and requires a supported browser in order to work. If no supported browser can be found, Welcome falls back to its
      Forms-based implementation, which has a different (simpler) appearance. Consult the </a><a href="http://www.eclipse.org/swt/faq.php#browserplatforms">SWT FAQ</a> for supported browsers and setting
    up your browser to work with eclipse.
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId26110">Help browser tool bar buttons do not work for some documents</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId26110"> The Help browser's Print, Synchronize, and Bookmark buttons do not work for pages that are not actually installed with the product. However, you can always use the
      print command in the browser's context menu to print the page you're reading. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44216">44216</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId324012">Help documents not displayed in a browser or very slow document loading (Windows only)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId324012">If your LAN settings are not properly configured for local host access, your Help browser might open to a blank page or display an HTTP error instead of a help page, or
      you may experience long delays when loading help documents. Your system administrator can configure your LAN settings so that help documents can be accessed from the local help server.</a>
  </p>
  <blockquote>
    <ol>
      <li><a
        class="mozTocH4"
        name="mozTocId324012">In the Control Panel, open <b>Internet Options</b>, select the <b>Connections</b> tab and choose <b>LAN Settings</b>.
      </a></li>
      <li><a
        class="mozTocH4"
        name="mozTocId324012">If your host was configured to use DHCP for IP assignment, make sure that the "Automatically detect settings" check box is cleared.</a></li>
      <li><a
        class="mozTocH4"
        name="mozTocId324012">If you use a proxy server, ensure that the "Bypass proxy server for local addresses" is selected.</a></li>
      <li><a
        class="mozTocH4"
        name="mozTocId324012">In "Advanced" settings for proxies, add "127.0.0.1;localhost" to the "Exceptions" if these addresses are not listed.</a></li>
      <li><a
        class="mozTocH4"
        name="mozTocId324012">If you are using an automatic configuration script for proxy settings, and are not sure that the script is correct, clear the "Use automatic configuration script"
          check box.</a></li>
    </ol>
  </blockquote>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId227368">Working disconnected from the network (Windows only)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId227368"> If you are experiencing problems when not connected to the network, you must install the loopback adapter from the Windows installation CD. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=831">831</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId121403">Using Internet Explorer in offline mode (Windows only)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId121403">If you have been using Internet Explorer in Offline mode, when you access the help system you will get a message indicating that the web page you requested is not
      available offline or a blank page will display. Click <b>Connect</b> or deselect "Work Offline" in the Internet Explorer "File" menu to return the system behavior to normal.
    </a>
  </p>
  <h3 id="I-Platform-UI">
    <a
      class="mozTocH3"
      name="mozTocId683637">Platform - UI</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId348035">Dirty state not tracked properly for OLE documents (Windows only)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId348035"> The dirty state for an OLE document is not updated properly. This causes Eclipse to prompt to save the contents of the editor when the document is closed, even if the
      contents have already been saved. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=2564">2564</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId878052">OLE document crashes can cause Eclipse to also crash (Windows only)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId878052">If an OLE document crashes, Eclipse can crash, or the workbench menus can become inconsistent.</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId452707">Toolbars only containing contributed controls exhibit display errors on Mac/Linux</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId452707"> Currently there is no way on the Max or Linux platforms to define the <b>height</b> for controls contributed to toolbars, nor will those platforms respect the size
      returned by the control's <code>computeSize</code> method. If you encounter this issue there is currently no truly viable workaround. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=183003">183003</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId443682">Allocating enough memory and solving OutOfMemoryError</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId443682"> The native launcher checks the JVM but PDE launches simply use java and don't go through the native launchers. The workaround is to add the appropriate JVM arg to your
      launch config or to the <i>Preferences &gt; Java &gt; Installed JREs</i>. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=339763">339763</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId862142">Capabilities and Activities don't affect the menus and toolbars</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId862142"> Capabilities used to hide GUI elements like menu entries work for commands and individual actionSet entries, but Capabilities have not been fully implemented. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=359778">359778</a>)
  </p>
  <h3 id="I-Platform-SWT">
    <a
      class="mozTocH3"
      name="mozTocId554478">Platform - SWT</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId534426">Usage of swt.autoScale and GDK_SCALE flag on GTK platforms</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId534426">With new implementation of hi-dpi support we are directly working with GTK3. So the users may see non-uniform scaling when you use swt.autoScale and GDK_SCALE flags. 
      Workaround is to set the scalefactor in display settings.</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId554478">Non-uniform scaling of text vs. icons when using intermediate scaling factors on high-DPI displays</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId554478">Eclipse automatically scales images on high-DPI monitors based on the resolution of the monitor. However, this scaling works only with integer scaling factors like
      100%, 200% etc by default. So, at intermediate scaling factors like 150%, 175% etc., its likely that the icons and text are scaled differently as the text scaling is handled directly by the
      operating system.</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId69222">Eclipse plug-in based on the SWT Browser throws exception</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId69222"> The SWT Browser widget uses a platform-specific web browser to render HTML. The org.eclipse.swt.SWTError exception ("No more handles") is thrown on platforms that don't
      meet the requirements for running the Browser widget. Supported platforms and prerequisites are listed on the SWT FAQ item </a><a href="http://www.eclipse.org/swt/faq.php#browserplatforms">
      "Which platforms support the SWT Browser?"</a>.
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId238090">Eclipse icon is duplicated in task-bar on Windows</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId238090"> Workaround is to pin the launched eclipse application and not the launcher, for more details, refer bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=314805">314805</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId414883">BIDI Segments in Text controls</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId414883"> BIDI Segments in Text controls only work on Windows and GTK. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=388578">388578</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId518357">Block Selection functionality provided by StyledText is not BIDI aware</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId518357"> When the orientation of characters under the left and right edges of the block selection rectangle are not the same, the actual selection ranges (in memory) differ
      from the visual representation of the selection. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=277929">277929</a>)
  </p>
  <h3 id="I-Platform-Team-CVS">
    <a
      class="mozTocH3"
      name="mozTocId263012">Platform - Team - CVS</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId263012"> The following are known problems with the CVS repository provider only, and do not apply to other repository providers. Additional information on how to use CVS from
      Eclipse can be found in the </a><a href="https://wiki.eclipse.org/CVS_FAQ">Eclipse CVS FAQ</a>.
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId262771">CVS server compatibility</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId262771">The CVS plug-in parses messages returned from the CVS server. If the format of these messages is not as expected, some of the plug-in's functionality may be missing.
      The CVS plug-in is compatible with all stable 1.11.X builds of the CVS server, and should be compatible with future releases in that stream unless text message formats change (the last tested
      server was 1.11.22). As for the 1.12.X feature releases of CVS, the Eclipse CVS client has been tested with builds up to 1.12.13. However, future releases could easily break the Eclipse CVS
      client. Basic functionality, such as Checkout, Commit, and Update, should always work, but there may be problems with more advanced commands such as Synchronizing and Browsing the repository.</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId532855">Connection cannot be found after initially missing</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId532855"> If a connection initially fails due to a network problem, the connection may continue to fail even when the network problem is fixed. In order to establish the
      connection you must exit and restart Eclipse. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=9295">9295</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId660590">Received broken pipe signal" error from server</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId660590"> Eclipse sometimes performs multiple commands within a single connection to the server. This may cause problems with CVS servers that are running server scripts in
      response to certain commands. (bugs </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=23575">23575</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=23581">23581</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId971246">Terminated with fatal signal 10" error from server</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId971246"> There is a bug in the CVS server related to some compression levels. If you get this error, changing the compression level on the CVS preference page may help. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=15724">15724</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId689776">error using ext connection method</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId689776"> There are a few situations that can result in an "Unknown response" error messages when using the ext connection method. One situation involves using an external
      communications client (e.g. rsh or ssh) that adds CRs to the communications channel (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=21180">21180</a>). Another involves Eclipse not
    properly reading the stderr output of the external communications tool. (bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=11633">11633</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId50418">A disabled CVS capability may not be auto-enabled in existing workspaces</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId50418"> New in 3.0 is the ability to disable capabilities and the CVS support in Eclipse can be disabled. However, for backwards compatibility the CVS capability is
      auto-enabled in existing workspaces that already contain CVS projects. The auto-enabling function may not run if the team support plugin is not loaded at startup. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66977">66977</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId533799">Builder output files may appear as changed</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId533799">When folders containing build output are shared they may get improperly marked as dirty when build output is generated.</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId253283">Enabling GNOME proxy support</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId253283"> GNOME applications can make use of proxy settings defined in this environment. If set, Eclipse will use it prior to proxy settings declared using env variables. This
      feature is disabled by default, to enable it launch Eclipse with <code>"-Dorg.eclipse.core.net.enableGnome"</code> switch. That is,
    </a>
  </p>
  <pre>
    <a
      class="mozTocH4"
      name="mozTocId253283">eclipse -Dorg.eclipse.core.net.enableGnome</a>
  </pre>
  <h3 id="I-Platform-Install-Update">
    <a
      class="mozTocH3"
      name="mozTocId805874">Platform - Install/Update</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId914600">Manually installing features and plug-ins on a FAT file system (Windows only)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId914600">When features and plug-ins are manually installed on top of an Eclipse-based product install located on a FAT file system that has already been run at least once, the
      product must be explicitly restarted with -clean. That is,</a>
  </p>
  <pre>
    <a
      class="mozTocH4"
      name="mozTocId914600">eclipse.exe -clean</a>
  </pre>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId648565">Connecting to untrusted sites using https</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId648565">You cannot install or update software from a site using https whose certificate is not chained to a trusted root certificate in your local certificate store. This
      typically means the server is using a self-signed certificate, or a certificate authenticated by an unknown third party.</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId104394">Extension location is lost if the install path changes</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId104394"> A previously configured extension location may be temporarily removed if the install is moved or mounted under a different path. This only happens when the link file
      that configures the extension location uses a relative path that points to a directory under the Eclipse install. On a second startup using the same install path, the extension location is added
      again (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=95403">95403</a>).
  </p>
  <h3 id="I-JDT">
    <a
      class="mozTocH3"
      name="mozTocId428861">Java development tools (JDT)</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId180305">Multiple regions formatting in a given source snippet</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId180305">In version 3.4, the API method <code>org.eclipse.jdt.core.formatter.CodeFormatter.format(int, String, IRegion[], int, String)</code> was added to allow the formatting
      of several regions in a source snippet with a single pass. <br /> Even if specified, this method does not currently accept comments of the following kinds:
    </a>
  </p>
  <ul>
    <li><code>
        <a
          class="mozTocH4"
          name="mozTocId180305">org.eclipse.jdt.core.formatter.CodeFormatter#K_SINGLE_LINE_COMMENT</a>
      </code></li>
    <li><code>
        <a
          class="mozTocH4"
          name="mozTocId180305">org.eclipse.jdt.core.formatter.CodeFormatter#K_MULTI_LINE_COMMENT</a>
      </code></li>
    <li><code>
        <a
          class="mozTocH4"
          name="mozTocId180305">org.eclipse.jdt.core.formatter.CodeFormatter#K_JAVA_DOC</a>
      </code></li>
  </ul>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId180305">This will be fixed in a future release (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=233967">233967</a>).
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId589358">Searching for constant field references</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId589358"> Search does not find references to constant fields inside binaries because the Java Language Specification mandates that constant field values be inlined in the class
      file's byte codes, leaving no trace of a field reference. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=12044">12044</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId577868">Cut, copy, paste not working for linked resources in views showing Java elements</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId577868"> The cut, copy, and paste actions do not work for linked files and folders appearing in views that show Java elements, including the Package Explorer. The workaround is
      to use these actions from the Navigator view instead. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34568">34568</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId554543">Java working sets not working correctly for elements from JRE system library container</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId554543"> Applying a working set consisting entirely of elements from the JRE System library container as a filter to the packages view might result in an empty Package
      Explorer. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=30442">30442</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId157019">Breakpoints unreliable running Sun 1.6.0_14</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId157019">Developers debugging applications on Sun's 1.6.0_14 virtual machine should be aware that breakpoints are unreliable (i.e. do not always suspend execution). The problem
      occurs on Windows and Linux platforms. This is an issue with the VM and not with Eclipse. The workaround is to use the <code>-XX:+UseParallelGC</code> VM option. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=279137">279137</a>).
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId440090">Suspend on uncaught exception overrides exception breakpoint location filters</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId440090"> Exception breakpoints can be configured with location filters (inclusive and exclusive). When an unchecked exception is configured to <b>not</b> suspend execution in a
      specific class, execution will still suspend when the user preference to suspend on uncaught exceptions is on. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66770">66770</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId812347">Running Java programs with non-Latin-1 characters in package or class names</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId812347">You get a <code>java.lang.NoClassDefFoundError</code> when running Java programs with non-Latin characters in the package or class names. The workaround is to package
      the class files as a JAR file and run the program out of the JAR and not from the file system directly. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4181">4181</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId638407">Cannot run or debug class in a project with GB18030 characters in project name</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId638407"> Most class libraries do not properly support the creation of a system process (via <code>java.lang.Runtime.exec(...)</code> ) when the specified command line contains
      GB18030 characters. This limitation means the debugger cannot launch applications when the command line it generates contains GB18030 characters. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=32206">32206</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId994970">Cannot detect installed JRE with GB18030 characters in path name</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId994970"> Automatic JRE detection fails when the JRE is stored in a directory containing GB18030 characters in its name. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=33844">33844</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId324283">Cannot generate Javadoc for packages with GB18030 characters in the name</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId324283"> Most class libraries do not properly support the creation of a system process (via <code>java.lang.Runtime.exec(...)</code> ) when the specified command line contains
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=32215">32215</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId524553">Unable to debug stack overflows</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId524553"> If a debug session suspends on a <code>java.lang.StackOverflowError</code> exception (due to an exception breakpoint), the debugger may not be able to retrieve any
      debug information from the target JVM. As well, the debugger may not be able to reliably interact with the target JVM past this point. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=19217">19217</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId162517">Evaluation limitation</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId162517"> The debugger uses threads in the target JVM to perform evaluations (both explicit evaluations that the user requests, and implicit evaluations such as <code>toString()</code>
      invocations in the <b>Variables</b> view). The Java Debug Interface (JDI) requires that the thread in which an evaluation is performed be suspended by a user event (that is, a breakpoint or step
      request). Evaluations cannot be performed on threads suspended by the suspend action. As well, when a breakpoint is configured to suspend the JVM rather than just the individual thread, the
      threads which did not encounter the breakpoint are not in a valid state to perform an evaluation. When an evaluation is attempted in a thread that is not in a valid state to perform an
      evaluation, an error message will appear to the effect of "Thread must be suspended by step or breakpoint to perform method invocation". (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34440">34440</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId408387">Missing debug attributes</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId408387">The debugger requires that class files be compiled with debug attributes if it is to be able to display line numbers and local variables. Quite often, class libraries
      (for example, " <code>rt.jar</code> ") are compiled without complete debug attributes, and thus local variables and method arguments for those classes are not visible in the debugger.
    </a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId330034">Using Hot Code Replace</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId330034">Hot code replace is supported on JDK 1.4.x VMs, and IBM J9 VMs. The debugger will attempt to replace all class files that change in the workspace as the user edits and
      builds source code. However, hot code replace is limited to changes that a particular virtual machine implementation supports. For example, changes within existing methods may be supported, but
      the addition or removal of members may not be.</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId976120">Scrapbook</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId976120">Setting a breakpoint inside a scrapbook page is not supported.</a>
  </p>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId976120"> When a snippet is run in the scrapbook which directly or indirectly calls <code>System.exit(int)</code> , the evaluation cannot be completed, and will result in a
      stack trace for a <code>com.sun.jdi.VMDisconnectedException</code> being displayed in the scrapbook editor.
    </a>
  </p>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId976120"> Terminating a scrapbook page while it is performing an evaluation results in a <code>com.sun.jdi.VMDisconnectedException</code> being displayed in the scrapbook
      editor.
    </a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId666507">Debugging over slow connections</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId666507">A global Java debug preference specifies the debugger timeout, which is the maximum amount of time the debugger waits for a response from the target VM after making a
      request of that VM. Slow connections may require that this value be increased. The timeout value can be edited from the <b>Java &gt; Debug </b>preference page. Changing the timeout value only
      affects subsequently launched VM, not VMs that are already running.
    </a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId207158">Updating of inspected values</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId207158">When inspecting the result of an evaluated expression in the debugger, it is important to note that the result displayed is the result of that expression at the time it
      was evaluated. For example, when inspecting a simple integer counter (primitive data type), the value displayed in the Expressions view is the value when the expression was evaluated. As the
      counter is changed in the running program, the inspected result will not change (since the view is not displaying the value bound to a variable - it is displaying the value of an expression, and
      the value of a primitive data type cannot change). However, if an expression results in an object, fields of that object will be updated in the inspector as they change in the running program
      (since the value bound to fields in an object can change).</a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId821393">Stepping over native methods that perform I/O</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId821393">When the debugger steps over native methods that perform I/O to <code>System.out</code> or <code>System.err</code>, the output may not appear immediately unless the
      native performs a flush on the output buffer.
    </a>
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId724969">VM and process termination running on IBM 1.3 JVM on Linux (Linux only)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId724969">Terminating a launch, debug target, or system process associated with a debug target running on the IBM 1.3 JVM on the Linux platform does not work when the associated
      debug target has a suspended thread. To remove such debug targets from the debug UI, select <b>Terminate and Remove</b> from the debug view's pop-up menu (or use the shortcut "delete" key).
      Associated system processes in the OS may not be properly cleaned up. If a debug target has no suspended threads, termination works properly. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=1631">1631</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId606104">Java Annotation Processing</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId606104"> Some methods in the processing API are unimplemented when compiling within the IDE, and will throw <code>UnsupportedOperationException</code> .
    </a>
  </p>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId606104"> Java 6 annotation processors are supported in the batch compiler and in the IDE. By design, Java 6 processors are only executed during a build, not while editing. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188558">188558</a>)
  </p>
  <p>
    Java 5 annotation processors are supported in the IDE only. Java 5 processors can be executed while editing, as well as during a build. Slow annotation processors can cause a slowdown of the
    editing experience. If this occurs, you may wish to turn off <b>Enable processing in editor</b> on the <b>Java Compiler &gt; Annotation Processing</b> properties page of your Java project.
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId188069">Java indexing encounters problems when a folder is used both as a source and a class folder</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId188069"> Java indexing encounters problems when a folder is used both as a source folder in a project and as a class folder in another project. Hence, when this peculiar setup
      is used, the Java Search might miss matches located in such a folder. To avoid this kind of problem, it is strongly advised to use different folders for sources and binary classes. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=309903">309903</a>)
  </p>
  <h3 id="I-PDE">
    <a
      class="mozTocH3"
      name="mozTocId25456">Plug-in Development Environment (PDE)</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId179699">Feature manifest editor does not preserve all comments</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId179699"> When a non-source page of the feature manifest editor is used, PDE will convert changes back into XML by regenerating the file. Although the overall content and most
      of the comments are preserved, some comments may be lost. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59502">59502</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId243421">PDE will not unzip source zips of some plug-ins</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId243421"> In the plug-in import wizard, when you choose to import plug-ins as "projects with source folders", PDE will not unzip the source for the org.apache.ant. This is
      because the source ZIPs contains code that will not compile when unzipped as it requires additional JARs that are not part of the SDK. To avoid the creation of plug-in projects that won't
      compile, PDE will import these plug-ins as binary and attach source, so you would still be able to read the source, you just won't be able to modify it. Also, PDE will not unzip the source for
      the org.eclipse.swt plug-ins. In this case, it is because, when shipped, the swt code is spread across a plug-in and a fragment, and when unzipped, it will require circular dependencies between
      the plug-in and fragment projects. These circular dependencies are at minimum marked as warnings by the JDT compiler and may result in unpredictable build behavior. Therefore, PDE always imports
      org.eclipse.swt as binary with source attached. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=66314">66314</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId722932">Emacs key bindings do not work in manifest editor fields</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId722932"> Non-default key bindings currently do not work in fields on non-source pages of the PDE manifest editors. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=19482">19482</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId828449">Export of plug-in may silently drop classes</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId828449"> When exporting a plug-in using the plug-in, feature or product wizards, some classes might be dropped from the resulting archive if their fully qualified name is too
      long. This typical path limitation can be worked around by creating the jar of the problematic plug-in by using the Jar export wizard. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=97150">97150</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId89714">Compilation errors when exporting projects not stored outside of the workspace</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId89714"> When exporting multiple plug-ins and one is stored outside of the workspace, compile errors occurs on export. To work around the problem, you can either export the
      plug-ins one by one, or change their location. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=98579">98579</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId270371">Headless build needs to be run from a fully qualified path</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId270371"> When running a headless build using the scripts provided by pde build, the properties <code>builder</code> and <code>buildDirectory</code> must refer to a fully
      qualified path. (bug
    </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=139554">139554</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId73293">Importing in Eclipse application fails if plug-in exists in host workspace</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId73293"> When running an Eclipse application (self-hosting) importing plug-ins will not work correctly if the plug-in being imported exists in the host Eclipse's workspace. This
      is because PDE modifies the target platform of the application to point at the running plug-ins from the host (target weaving). This also affects the PDE test suite. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=294005">294005</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId914239">Reusing a workspace after changing architectures silently breaks PDE models</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId914239"> If a workspace is reused on a machine with a different architecture, the PDE models used to build plug-ins may silently fail. To work around this problem, delete the
      metadata in &lt;workspace&gt;/.metadata/.plugins/org.eclipse.pde.core. (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=350172">350172</a>)
  </p>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId624312">Missing @since tag API Tools problems on interface fields containing @noreference tag</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId624312"> The Eclipse platform 4.6 release will not allow the API Tools @noreference tag on interface fields. This was changed because all interface fields are constant fields
      that cannot support the @noreference restriction. The tag was allowed in previous releases and this usage will now be considered an API change requiring a @since tag. It is recommended that you
      create an API Tools filter for the missing @since tag problem. This filter can be removed as soon as the API baseline has been regenerated. (bug </a><a
      href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=402393">402393</a>)
  </p>
  
  <h2 id="RunningEclipse">
    <a
      class="mozTocH2"
      name="mozTocId19817">Running Eclipse</a>
  </h2>
  <p>
    <a
      class="mozTocH2"
      name="mozTocId19817"> After installing the Eclipse SDK in a directory, you can start the Workbench by running the Eclipse executable included with the release (you also need a Java SE 11 JRE,
      not included with the Eclipse SDK). On Windows, the executable file is called <samp>eclipse.exe</samp> , and is located in the <code>eclipse</code> sub-directory of the install. If installed at
      <code>c:\eclipse-SDK-4.17-win64</code> , the executable is <code>c:\eclipse-SDK-4.17-win64\eclipse\eclipse.exe</code> . <b>Note:</b> Set-up on most other operating environments is analogous.
      Special instructions for Mac OS X are listed
    </a><a href="#macosx">below</a>.
  </p>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId60052">Allocating enough memory and solving OutOfMemoryErrors</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId60052"> By default, Eclipse will allocate up to 1024 megabytes of Java heap memory. This should be ample for all typical development tasks. However, depending on the JRE that
      you are running, the number of additional plug-ins you are using, and the number of files you will be working with, you could conceivably have to increase this amount. Eclipse allows you to pass
      arguments directly to the Java VM using the <code>-vmargs</code> command line argument, which must follow all other Eclipse specific arguments. Thus, to increase the available heap memory, you
      would typically use:
    </a>
  </p>
  <blockquote>
    <p>
      <a
        class="mozTocH3"
        name="mozTocId60052"> <code>eclipse -vmargs -Xmx&lt;memory size&gt;</code>
      </a>
    </p>
  </blockquote>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId60052"> with the <code>&lt;memory size&gt;</code> value set to greater than "1024M" (1024 megabytes -- the default).
    </a>
  </p>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId60052">Note that setting memory sizes to be near or larger than the amount of available physical memory on your machine will cause Java to "thrash" as it copies objects back
      and forth to virtual memory, which will severely degrade your performance.</a>
  </p>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId735187">Selecting a workspace</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId735187"> When the Workbench is launched, the first thing you see is a dialog that allows you to select where the workspace will be located. The workspace is the directory where
      your work will be stored. If you do not specify otherwise, Eclipse creates the workspace in your user directory. This workspace directory is used as the default content area for your projects as
      well as for holding any required metadata. For shared or multi-workspace installs you must explicitly specify the location for your workspace using the dialog (or via the " <code>-data</code> "
      command line argument).
    </a>
  </p>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId620725">Specifying the Java virtual machine</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId620725">Here is a typical Eclipse command line:</a>
  </p>
  <blockquote>
    <p>
      <a
        class="mozTocH3"
        name="mozTocId620725"> <code>eclipse -vm c:\jdk11\bin\javaw</code>
      </a>
    </p>
  </blockquote>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId620725"> <i>Tip:</i> It's generally a good idea to explicitly specify which Java VM to use when running Eclipse. This is achieved with the " <code>-vm</code> " command line
      argument as illustrated above. If you don't use " <code>-vm</code> ", Eclipse will look on the OS path. When you install other Java-based products, they may change your path and could result in
      a different Java VM being used when you next launch Eclipse.
    </a>
  </p>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId620725">To create a Windows shortcut to an installed Eclipse:</a>
  </p>
  <ol>
    <li><a
      class="mozTocH3"
      name="mozTocId620725">Navigate to <code>eclipse.exe</code> in Windows Explorer and use Create Shortcut on the content menu.
    </a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId620725">Select the shortcut and edit its Properties. In the Target: field append the command line arguments.</a></li>
  </ol>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId620725">Opening this shortcut launches Eclipse. (You can drag the shortcut to the Windows Desktop if you want to keep it in easy reach.)</a>
  </p>
  <h3 id="macosx">
    <a
      class="mozTocH3"
      name="mozTocId928700">Mac OS X</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId928700"> On Mac OS X, you start Eclipse by double clicking the Eclipse application. If you need to pass arguments to Eclipse, you'll have to edit the <code>eclipse.ini</code>
      file inside the Eclipse application bundle: select the Eclipse application bundle icon while holding down the Control Key. This will present you with a popup menu. Select "Show Package Contents"
      in the popup menu. Locate <code>eclipse.ini</code> file in the <code>Contents/Eclipse</code> sub-folder and open it with your favorite text editor to edit the command line options.
    </a>
  </p>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId928700"> On MacOS X you can only launch a UI program more than once if you have separate copies of the program on disk. The reason for this behavior is that every UI
      application on Mac can open multiple documents, so typically there is no need to open a program twice. Since Eclipse cannot open more than one workspace, this means you have to make a copy of
      the Eclipse install if you want to open more then one workspace at the same time (bug </a><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=139319">139319</a>).
  </p>
  <p>If you need to launch Eclipse from the command line, you can create a symbolic link such as "eclipse". It should point to the eclipse executable inside the application bundle and takes the
    same arguments as "eclipse.exe" on other platforms.</p>
  <p>On Mac OS X 10.4 and later, you may notice a slow down when working with significant numbers of resources if you allow Spotlight to index your workspace. To prevent this, start System
    Preferences, select the Spotlight icon, then the Privacy tab, then click the Add button ("+") and find your workspace directory in the dialog that appears.</p>
  <h3 id="SharedInstall">
    <a
      class="mozTocH3"
      name="mozTocId221199">Shared Install</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId221199"> The startup speed of a shared install can be improved if proper cache information is stored in the shared install area. To achieve this, after unzipping Eclipse
      distribution, run Eclipse once with the "-initialize" option from an account that has a write access to the install directory. See </a><a
      href="%20http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fmulti_user_installs.html">shared installs</a> in Eclipse Help for more information.
  </p>
  <h2 id="Upgrading">
    <a
      class="mozTocH2"
      name="mozTocId575572">Upgrading Workspace from a Previous Release</a>
  </h2>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId401691">Users who don't use "-data"</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId401691">If you weren't previously using "-data" to specify your workspace, follow these steps to upgrade:</a>
  </p>
  <ol>
    <li><a
      class="mozTocH3"
      name="mozTocId401691">Find the workspace directory used by your old version of Eclipse. Typically this is located inside the directory in which Eclipse was installed in a sub-directory
        called "<code>workspace</code>". If you are using a shortcut or script to launch Eclipse, then it will be under the current working directory of that shortcut or script in a sub-directory
        called "workspace". For Windows users, this is specified by the "Start in:" argument in your shortcut properties.
    </a></li>

    <li><a
      class="mozTocH3"
      name="mozTocId401691">Copy this workspace directory to a new, empty location outside of any Eclipse install directory.</a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId401691">Install the new version of Eclipse in a new location, separate from any old version of Eclipse.</a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId401691">If you had installed additional features and plug-ins into your old Eclipse, you should re-install them in the new Eclipse.</a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId401691">Start this new version of Eclipse and select this location using the workspace chooser dialog at startup (or use "<code>-data</code>" command line argument to
        pre-select the workspace location).
    </a></li>
  </ol>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId197750">Users who do use "-data"</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId197750"> If you were previously using the " <code>-data</code> " argument to start Eclipse, your upgrade path is much easier:
    </a>
  </p>
  <ol>
    <li><a
      class="mozTocH3"
      name="mozTocId197750">Optionally copy your workspace directory to a new, empty location outside of any Eclipse install directory as a backup.</a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId197750">Install the new version of Eclipse in a new location, separate from any old versions of Eclipse.</a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId197750">If you had installed additional features and plug-ins into your old Eclipse, you should re-install them in the new Eclipse.</a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId197750">Start this new version of Eclipse and select this location using the workspace chooser dialog at startup (or use "<code>-data</code>" command line argument to
        pre-select the workspace location).
    </a></li>
  </ol>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId197750"> <i>Note:</i> Copying your workspace is recommended because, 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 "back in time" to an earlier release, you will need that backup.
    </a>
  </p>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId839433">Users who use User Libraries or classpath containers that contain JARs referencing other libraries via Class-Path in the MANIFEST.MF</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId839433">If you want the referenced JAR files to be included in the classpath, you can do one of the following:</a>
  </p>
  <ul>
    <li><a
      class="mozTocH3"
      name="mozTocId839433">Add the system property (<code>-DresolveReferencedLibrariesForContainers=true</code>) to the <code>-vmargs</code> list on start-up, or
    </a></li>
    <li><a
      class="mozTocH3"
      name="mozTocId839433">Manually add the referenced JARs to the User Library or to the project.</a></li>
  </ul>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId623237">Dropped in bundles may not resolve after upgrade</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId623237"> If you have installed bundles by dropping them into the <code>plugins</code> or <code>dropins</code> directory, they might no longer resolve when you upgrade to a new
      Eclipse Platform version. In each new version of the Eclipse Platform, there are new versions of bundles included in the platform, and often a small number of removed bundles. This may cause
      your previously dropped in bundles to no longer resolve and run. It is always recommended that you install software via the <code>Help &gt; Install New Software</code> mechanism so you are made
      aware of any install-time failure to resolve dependencies.
    </a>
  </p>
  <h2 id="InteroperabilityWithPreviousReleases">
    <a
      class="mozTocH2"
      name="mozTocId638978">Interoperability with Previous Releases</a>
  </h2>
  <h3>
    <a
      class="mozTocH3"
      name="mozTocId759237">Interoperability of Release 4.17 with previous releases</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId226004">Sharing projects between heterogeneous Eclipse 4.17 and 4.16</a>
  </h4>
  <p>Special care is required when a project in a team repository is being loaded and operated on by developers using Eclipse-based products based on different feature or plug-in versions. The
    general problem is that the existence, contents, and interpretation of metadata files in the workspaces may be specific to a particular feature or plug-in version, and differ between versions. The
    workspace compatibility guarantees only cover cases where all developers upgrade their Eclipse workspaces in lock step. In those cases there should be no problem with shared metadata. However,
    when some developers are working in Eclipse 4.17 while others are working in Eclipse 3.x, there are no such guarantees. This section provides advice for what to do and not to do. It addresses the
    specific issues with the Eclipse SDK.</p>
  <p>The typical failure mode is noticed by the 4.17 user. 4.16 metadata is lost when a 4.17 user saves changes and then commits the updated metadata files to the repository. Here's how things
    typically go awry:</p>
  <ul>
    <li>A user working in Eclipse 4.17 creates or modifies a project in a way that results in changes to a shared metadata file that rely on 4.17-specific information. The user then commits the
      updated project files, including the shared metadata file, to the shared repository.</li>
    <li><a
      class="mozTocH4"
      name="mozTocId226004">Another user working in Eclipse 4.16 or earlier shares this project from the same repository. The 4.17-specific information in the shared metadata file is not understood
        by Eclipse 4.16, and is generally discarded or ignored without warning. The user modifies the project in a way that results in changes to the shared metadata file, causing the shared metadata
        file to be rewritten without any of the 4.17-specific information. The user commits the updated project files, including the shared metadata file, to the shared repository. The user is
        generally unaware that shared information has just been lost as a result of their actions.</a></li>
    <li><a
      class="mozTocH4"
      name="mozTocId226004">A user working in Eclipse 4.17 picks up the changes to a project from the shared repository, including the updated shared metadata file. The user may be unaware that
        they have just taken a retrograde step until later when things start to malfunction.</a></li>
  </ul>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId226004">Here are some things to watch out for when sharing projects between Eclipse 4.17 and earlier releases:</a>
  </p>
  <ul>
    <li><a
      class="mozTocH4"
      name="mozTocId226004"><b>Virtual folders</b> - Eclipse 4.17 supports a notion of <i>virtual folders</i> that did not exist in Eclipse 3.5 or earlier. If such virtual folders are created in
        4.17, and the project is subsequently loaded into an Eclipse 3.5 or earlier workspace, these folders will not be recognized. Recommendation: avoid creating virtual folders where project
        compatibility with Eclipse 3.5 or earlier is required.</a></li>
    <li><a
      class="mozTocH4"
      name="mozTocId226004"><b>Resource filters</b> - Eclipse 4.17 supports a notion of <i>resource filters</i> that did not exist in Eclipse 3.5 or earlier. If such filters are added to resources
        in 4.17, and the project is subsequently loaded into an Eclipse 3.5 or earlier workspace, these filters will not be recognized. Recommendation: avoid creating resource filters where project
        compatibility with Eclipse 3.5 or earlier is required.</a></li>
    <li><a
      class="mozTocH4"
      name="mozTocId226004"><b>Predefined path variables</b> - Eclipse 4.17 supports a set of built in path variables that can be used as the basis for linked resource locations. Such variables
        will not be defined automatically in Eclipse 3.5 or earlier. If compatibility with 3.5 or earlier workspace is required, users on 3.5 or earlier workspaces will need to define such path
        variables manually.</a></li>
  </ul>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId574781">Using Eclipse 4.17 to develop plug-ins that work in Eclipse 4.16</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId574781"> It is also possible (and reasonable) to use Eclipse 4.17 to develop a plug-in intended to work in Eclipse 4.16 or earlier. Use the <b>Plug-in Development &gt; Target
        Platform </b>preference page to locate non-workspace plug-ins in an Eclipse 4.16 install. This ensures that the code for your plug-in is being compiled and tested against Eclipse 4.16 APIs,
      extension points, and plug-ins. (The above list of concerns do not apply since they affect the layout and interpretation of files in the plug-in <i>project</i> but none affect the actual
      deployed form of the plug-in.)
    </a>
  </p>
  <h2 id="appendix">
    <a
      class="mozTocH2"
      name="mozTocId317294">Appendix: Execution Environment by Bundle</a>
  </h2>
  <!--
     Remember, the URL to appendix link must be full URL, since some may be
     viewing this file, from a "file://" URL
-->
  <p>
    <a
      class="mozTocH2"
      name="mozTocId317294"> See the table in the </a><a
      href="https://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_4_17.xml#appendix">Eclipse 4.17 Project Plan Appendix</a> for
    the list of the minimum execution environment (Java class library) requirements of each bundle.
  </p>
  <hr />
  <p>Sun, Solaris, Java and all Java-based trademarks are trademarks of Oracle Corporation. in the United States, other countries, or both.</p>
  <p>IBM is a trademark of International Business Machines Corporation in the United States, other countries, or both.</p>
  <p>Microsoft, Windows, Windows NT, Vista, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.</p>
  <p>Apple and Mac OS are trademarks of Apple Computer, Inc., registered in the U.S. and other countries.</p>
  <p>Other company, product, and service names may be trademarks or service marks of others.</p>
  <p>(c) Copyright Eclipse Contributors 2009, 2020</p>
</body>
</html>
