*faq.html*

FAQ / Troubleshooting
*********************


FAQ
===

*eclim_workspace*


How do I tell eclim which eclipse workspace to use?
---------------------------------------------------

To configure the workspace you can start eclimd like so:

>

   $ eclimd -Dosgi.instance.area.default=@user.home/another_workspace

<


Note the system property osgi.instance.area.default, which is used to
specify the location of your workspace.  Also note the variable
@user.home which will be replaced with your home directory at runtime.

If you are running a unix variant (linux, mac osx, bsd, etc.) then you
can specify the above system property in the .eclimrc file in your
home directory.

>

   $ echo "osgi.instance.area.default=@user.home/another_workspace" >> ~/.eclimrc

<


*eclimd_options_windows*

For Windows users there are a couple alternatives to the unsupported
.eclimrc:

1. Your first option is to add a new environment variable:
      - Windows 2000: Control Panel ‣ System ‣ Advanced ‣ Environment
        Variables Windows XP: Control Panel ‣ Performance And Maintenance
        ‣ System ‣ Advanced ‣ Environment Variables
      - Under “User variables…” click “New…” Variable Name: ECLIMD_OPTS
        Variable Value:
        -Dosgi.instance.area.default=@user.home/another_workspace
   - Then you can start eclimd as normal (via the eclimd.bat file).
2. The second option is to create a shortcut to the eclimd.bat
   file:
   - In Windows Explorer, open your eclipse folder.
   - Hold down the right mouse button and drag the eclimd.bat file
     to where you want the shortcut to exist (like your desktop) and
     release the right mouse button.
   - Choose “Create Shortcut(s) Here”
   - Right click the shortcut and choose “Properties”
      - On the “Shortcut” tab edit the “Target:” field and append:
        -Dosgi.instance.area.default=@user.home/another_workspace
*eclim_proxy*


How can I configure eclim to use a proxy?
-----------------------------------------

The occasional eclim feature requires network access to function
properly. For example, xml validation may require validating the file
against a dtd or xsd located remotely.  If you are behind a proxy then
you may need to provide eclim with the necessary proxy settings.

>

   $ eclimd -Dhttp.proxyHost=my.proxy -Dhttp.proxyPort=8080

<


If you are running a unix variant (linux, mac osx, bsd, etc.) then you
can specify the above system property in the .eclimrc file in your
home directory.

>

   $ echo -e "http.proxyHost=my.proxy\nhttp.proxyPort=8080" >> ~/.eclimrc

<


If your proxy requires authentication, you’ll need to supply the
-Dhttp.proxyUser and -Dhttp.proxyPassword properties as well.

On Windows systems you can use the same steps described above, for
setting the workspace location, to also set the proxy settings.

*eclim_memory*


How do I specify jvm memory arguments for eclim (fix OutOfMemory errors).
-------------------------------------------------------------------------

If you are using the headless version of eclimd, then you have a
couple options:

1. pass the necessary jvm args to eclimd. For example, to increase
   the heap size:
   >
      $ eclimd -Xmx256M

   <

2. if you are using a unix variant, then you can add the necessary
   vm args to a .eclimrc file in your home directory.
   >
      # increase heap size
      -Xmx256M

   <

   On Windows systems you can use the same steps described above, for
   setting the workspace location, to also specify the jvm memory
   args.

If you are using the headed version of eclimd, then setting the jvm
memory arguments for eclim is the same procedure as setting them for
eclipse.  Details can be found on the eclipse wiki
(http://wiki.eclipse.org/Eclipse.ini).

*eclim_troubleshoot*


How do I troubleshoot features not functioning, or errors encountered?
----------------------------------------------------------------------

For troubleshooting eclim, please see the dedicated troubleshooting
section below.

*eclim_full_headless*


How can I run eclimd on a truly headless server?
------------------------------------------------

Please see the headless guide (install#install-headless).

*eclim_encoding*


How can I set the default encoding used by eclipse/eclimd?
----------------------------------------------------------

To set the default encoding you can set the file.encoding system
property according to your setup:

1. Headless eclimd users on any unix variant (Linux, OSX, etc) can
   simply add the property your .eclimrc file in your home directory:
   >
      # set the default file encoding
      file.encoding=utf-8

   <

2. Headless eclimd users on Windows can add the system property
   (eg. -Dfile.encoding=utf-8) using the same steps described above,
   for setting the workspace location.
3. Headed eclimd users can add the system property (eg.
   -Dfile.encoding=utf-8) to your eclipse.ini file found in your
   eclipse install’s root directory. Be sure to add the property on a
   new line after the -vmargs line:
   >
      ...
      -vmargs
      ...
      -Dfile.encoding=utf-8

   <

   You can read more about the eclipse.ini file on the eclipse wiki
   (http://wiki.eclipse.org/Eclipse.ini).

*troubleshooting*


Troubleshooting
===============

The purpose of this guide is to serve as a means to help troubleshoot
common issues encountered when getting start with eclim, or providing
information if you’ve discovered a possible bug.

The first thing to note is that as of eclim 1.6.1, errors raised by
eclimd when executing an autocmd from vim, like validating a file on
write, are no longer echoed as errors to the user. Instead these
errors are logged and only displayed if your eclim log level is set to
a relevant level.  You can set the log level at any time by running:

>

   :let g:EclimLogLevel = 'trace'

<


in vim, which in this case sets the logging to verbose (the default
log level is info). After setting the log level, any external commands
that are run or autocmd errors encountered will be printed (you may
need to run :messages to see them all).

Below are a series of sections broken up by the behavior (or lack of)
experienced and the steps for diagnosing the cause of that behavior.

If you can’t find the answer to your question here, be sure to take a
look at the faq () to see if your question is answered there.

*ts_workspace*


Eclim does not recognize any of my existing projects.
-----------------------------------------------------

A fairly common occurrence for users new to eclim, is that after
starting eclimd and then attempting to execute some project dependent
functionality, the functionality appears to do nothing or eclim
complains that the project could not be determined.  If you have
existing projects created in eclipse and eclim is not finding them,
then the likely cause is that your projects are located in a
non-default workspace location.

For the answer to how to specify the location of your workspace when
starting eclimd, please see the faq devoted to this.

*ts_completion*


I’m editing a [java, python, php, etc] file and code completion doesn’t work.
-----------------------------------------------------------------------------

- If you receive the message “E764: Option ‘completefunc’ is not
  set”, please see the file type section below.
- Next step is to make sure that the current file is in an eclipse
  project by running the following command in the vim windows
  containing the file you are working on.
  >
     :ProjectInfo

  <

  If that returns an error that it is unable to determine the project,
  then see the workspace section above or the guide on creating a new
  project (gettingstarted#gettingstarted-create).

- If the correct project info is found, then try running the
  completion again, if it still doesn’t return any results run the
  command:
  >
     :messages

  <

  This will print out any messages that you might have missed.  If you
  see an error regarding a java exception while running a command then
  see the section on troubleshooting exceptions.

*ts_ftplugin*


I’m editing a [java, python, php, etc] file and none of the file type commands exist.
-------------------------------------------------------------------------------------

This usually indicates that you don’t have file type plugins enabled
in vim. To check you can run:

>

   :EclimValidate

<


If it complains about filetype plugin support not being found, then
follow its directions on adding the following to your vimrc:

>

   filetype plugin indent on

<


*ts_signs_misplaced*


Code validation signs are showing up on the wrong lines.
--------------------------------------------------------

This is most likely a result of eclipse being setup to use a different
file encoding than vim, most likely cp1251 (windows-1251) vs utf-8.
You should be able to resolve this issue by setting eclipse’s default
encoding accordingly.

If you’re unsure what encoding to use, try using utf-8.

*ts_exception*


I received a java exception “while executing command” message.
--------------------------------------------------------------

If you receive a java exception while performing some action in vim,
it should also include a message indicating the issue.  However, if
you receive something like a NullPointerException or some other
exception which doesn’t include a helpful message, then you may have
encountered a bug.

Once you’ve encountered this type of issue, the first step it to get
more details which you can do by enabling eclim debugging in vim:

>

   :let g:EclimLogLevel = 'trace'

<


Then you can perform the same action that triggered the error again.
This time you should receive the full stack trace of the error.

If the error occurs while manually running a command (:JavaSearch,
etc), then you can instead prepend verbose to the command to view the
full stack trace:

>

   :verbose JavaSearch ...

<


Once you’ve obtained the stack trace, the next step it to send it to
the eclim-user (http://groups.google.com/group/eclim-user) mailing
list along with a description of what you were doing when the error
occurred, as well as the OS you are on, and whether you were using
eclimd headless or headed (inside of the eclipse gui).

*ts_incompatible_plugins*


Incompatible Plugins
--------------------

There are some third party eclipse plugins which currently may
interfere with eclim.  Below is a list of these known plugin
incompatibilities.

- Spring IDE: At least one user has reported that eclim’s java
  validation no longer works after installing the Spring IDE.
- viPlugin: Attempting to open a file using the embedded gvim
  support fails if viPlugin is installed.  This issue has been
  reported on the viPlugin site.

vim:ft=eclimhelp