<!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.22</title>
<!-- Please validate as "xhtml1 strict", at
https://validator.w3.org/check?uri=http%3A%2F%2Fwww.eclipse.org%2Feclipse%2Fdevelopment%2Freadme_eclipse_4.22.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.22</a>
  </p>
  <p>
    <a
      class="mozTocH1"
      name="mozTocId299852">Last revised November 17, 2021</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.22.php">Eclipse Release Notes 4.22</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.22 with 4.21</a></li>
          </ol></li>
        <li><a href="#mozTocId214943">Known Issues</a>
          <ol>
            <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>
              </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="#mozTocId565691">Support for macOS 11 (Big Sur)</a></li>
                <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="#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.22 with previous releases</a>
              <ol>
                <li><a href="#mozTocId226004">Sharing projects between heterogeneous Eclipse 4.22 and 4.21</a></li>
                <li><a href="#mozTocId574781">Using Eclipse 4.22 to develop plug-ins that work in Eclipse 4.21</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.22 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.22 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=https://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_4_22.xml#target_environments">Target Environments in the
      4.22 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.22 with 4.21</a>
  </h3>
  <p>
    <a
      class="mozTocH3"
      name="mozTocId324309">Eclipse 4.22 is compatible with Eclipse 4.21 (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.22 is upwards contract-compatible with Eclipse SDK 4.21 except in those areas noted in the
    </a><a href="https://www.eclipse.org/eclipse/development/porting/eclipse_4_22_porting_guide.html"><em>Eclipse 4.22 Plug-in Migration Guide</em></a>. Programs that use affected APIs and extension points
    will need to be ported to Eclipse SDK 4.22 APIs. Downward contract compatibility is not supported. There is no guarantee that compliance with Eclipse SDK 4.22 APIs would ensure compliance with
    Eclipse SDK 4.21 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.22 is upwards binary-compatible with Eclipse SDK 4.21 except in those areas noted in the <a
      href="https://www.eclipse.org/eclipse/development/porting/eclipse_4_22_porting_guide.html"><em>Eclipse 4.22 Plug-in Migration Guide</em> </a>. Downward plug-in compatibility is not supported.
    Plug-ins for Eclipse SDK 4.22 will not be usable in Eclipse SDK 4.21. 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.22 is upwards source-compatible with Eclipse SDK 4.21 except in the areas noted in the <a
      href="https://www.eclipse.org/eclipse/development/porting/eclipse_4_22_porting_guide.html"><em>Eclipse 4.22 Plug-in Migration Guide</em> </a>. This means that source files written to use Eclipse
    SDK 4.22 APIs might successfully compile and run against Eclipse SDK 4.21 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.22 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.21, 4.20, 4.19, 4.18, 4.17, 4.16, 4.15, 4.14, 4.13, 4.12, 4.11, 4.10, 4.9, 4.8, 4.7, 4.6, 4.5 and 4.4 can be successfully opened by Eclipse SDK 4.22 and upgraded to a 4.22 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.22 should provide similar upwards compatibility for their hidden and visible workspace metadata created by earlier versions; 4.22 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.22 will be unusable with a product based on an earlier version of Eclipse. Visible
    metadata files created (or overwritten) by Eclipse 4.22 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-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 11 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.22 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>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>
  <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="https://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="mozTocId565691">Support for macOS 11 (Big Sur)</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId565691">Eclipse/SWT 4.22 supports macOS 11 (Big Sur). Most of issues that were identified have been addressed in 4.22.
  </p>
  <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="https://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="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="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="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). With Oomph users can install required JRE courtesy of <a href="https://www.eclipse.org/justj/">JustJ</a>. 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.22-win64</code> , the executable is <code>c:\eclipse-SDK-4.22-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="%20https://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.22 with previous releases</a>
  </h3>
  <h4>
    <a
      class="mozTocH4"
      name="mozTocId226004">Sharing projects between heterogeneous Eclipse 4.22 and 4.21</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.22 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.22 user. 4.21 metadata is lost when a 4.22 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.22 creates or modifies a project in a way that results in changes to a shared metadata file that rely on 4.22-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.21 or earlier shares this project from the same repository. The 4.22-specific information in the shared metadata file is not understood
        by Eclipse 4.21, 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.22-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.22 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.22 and earlier releases:</a>
  </p>
  <ul>
    <li><a
      class="mozTocH4"
      name="mozTocId226004"><b>Virtual folders</b> - Eclipse 4.22 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.22, 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.22 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.22, 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.22 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.22 to develop plug-ins that work in Eclipse 4.21</a>
  </h4>
  <p>
    <a
      class="mozTocH4"
      name="mozTocId574781"> It is also possible (and reasonable) to use Eclipse 4.22 to develop a plug-in intended to work in Eclipse 4.21 or earlier. Use the <b>Plug-in Development &gt; Target
        Platform </b>preference page to locate non-workspace plug-ins in an Eclipse 4.21 install. This ensures that the code for your plug-in is being compiled and tested against Eclipse 4.21 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>
  <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, 2021</p>
</body>
</html>
