Eclipse (3.4.2 with PyDev) deals with out-of-sync resources (files that have been edited outside of the IDE) differently from other IDEs that I've used, where only resources with editors open are considered out-of-sync. In Eclipse, any resource can go out of sync.
This means that when I perform a search after any file has changed outside of Eclipse, I get an error dialog telling me that files are out of sync, even if they have no open editors. As far as I can tell, there is no global refresh command, so I'm forced to read the project names (I have several projects) in the error dialog, and do a right-click + refresh for each of them.
I've checked the Refresh Automatically setting in Settings > General > Workspace, but this has no effect. Is there any way to get Eclipse to always just load non-active resources from disk?
This issue will be fixed in Eclipse 3.7 (Indigo). While "Refresh Automatically" does eventually bring resources back into sync, the refresh hook only exists for Windows, so on Linux and Mac OS it has to poll the filesystem periodically.
From 3.7 there's a new preference Settings > General > Workspace > Refresh On Access (aka Lightweight Refresh). This preference causes Eclipse to automatically refresh resources when it discovers that they're 'out-of-sync'. When opening, reading or searching files, it'll prevent out-of-sync errors from occurring.
See also: https://bugs.eclipse.org/303517
I think if you click on the project node in the Project Explorer and press F5 or right click and select Refresh, all resources for that project will be refreshed. Also, if you CTRL+click on multiple projects, you should be able to refresh multiple projects at the same time.
A single click on a project, a CTRL+A to select everything, and an F5 should do exactly what you need - refresh everything.
I'll have to test this when I get the chance, but I believe this is how I overcame similar problems in the past.
I've noticed that this answer routinely is getting down voted. I'd like to point out that the question refers to a specific version of Eclipse: 3.4.2. There was actually no automatic method to refresh out-of-sync resources until version 3.7 Indigo of Eclipse, as mentioned in James Blackburn's answer. The method described in this answer is the only method to achieve this in version 3.4.2 (and any other version before 3.7 Indigo).
Out of synchronization problem is common in eclipse IDE so you have to check this option windows -> preference -> Workspace -> refresh using native hooks or polling.
Eclipse Helios possesses a built in refresh feature at Preferences > General > Workspace. It's in the same spot where you disable automatic builds. Select refresh automatically. A plugin with the same functionality is Andrei Loskutov's Filesync Plugin. The update site address is: http://andrei.gmxhome.de/eclipse/. During installation, select Eclipse 3.5-3.7 plugins > FileSync.
Given that Java 7 has an api for filesystem hooks, one would think that refresh could be handled better in Eclipse.
Edit: Actually, there is a plugin that uses this mechanism: https://github.com/psxpaul/EclipseJava7Refresher
There is a global refresh - have nothing (or everything) selected in the package explorer and press F5 (or right-click on empty space and select Refresh). Of course, this could take rather long if you have large projects.
The global refresh actually exists in plain Eclipse without any plugins and without selecting every project in your workspace.
Basically you need to deselect everything in your project explorer and hit F5. To do that Ctrl+click the selected resource in the project explorer and hit F5.
A global refresh is really missing in Eclipse. The above procedure with selecting all projects and then running refresh (e.g. F5) does not work if you have closed projects included in your selection. This means, if you have 1/2 of your many projects closed as I do, you find yourself manually Ctrl-clicking through your dozens of projects. This is quite painful. I wish Eclipse would simply ignore closed projects.
Perhaps you should add a feature request on the eclipse site:
https://bugs.eclipse.org/bugs/
I think it would be a great idea to add a preference for automatically refreshing out of date resources.
Yes, Refresh on Access is long overdue ... those answers to this and similar enquires usually suggested enabling the global auto-refresh, which could take an age for large remote projects.
In fact there are those who would say that Refresh on Access should have been the original (< 3.x) default behaviour ...
I managed to solve this by creating a new "external tool" run config that executes a blank batch file. In the run config, you can have it refresh the workspace when complete. Then I created a macro using Practically Macro that 1) executes the last external tool run config (refreshing the workspace), then 2) executes the last debug run config (running my app). If you uncheck "Allocate console" then the completed external tool entry won't show up in the debug window.
Even if the solutions proposed by others perso are indeed correct, you have a "Refresh All" plugin for Eclipse. Simply add the Update page to your Eclipse list of update sites to install it in your IDE.
For Starting up there is an option to automatically refresh files in
Window -> Preferences -> General -> Startup and Shutdown -> Refresh workspace on startup
Click it in order to have a "fresh" start in eclipse. :)
Version: Eclipse 4.12
Related
Can I refresh the explorer without pressing F5 button? I want it keep refresh by itself while running the project.
I'm using Eclipse Mars 4.5.1
From eclipse doc Workspace
Select Check Box: Refresh using native hooks or polling
It is needed to check both "Refresh using native hooks or polling" and "Refresh On Access".
But not only check the "Refresh On Access".
there's a new preference Settings > General > Workspace > Refresh On Access (aka Lightweight Refresh). This preference causes Eclipse to automatically refresh resources when it discovers that they're 'out-of-sync'. When opening, reading or searching files, it'll prevent out-of-sync errors from occurring.
Other option is preference Settings > General > Workspace >Refresh using native hooks or polling
If this option is turned on then the workspace resources will be synchronized with their corresponding resources in the file system automatically using native refresh providers (on Windows) or a polling mechanism.
Note: This can potentially be a lengthy operation depending on the number of resources you have in your workspace.
For more details
Can Eclipse refresh resources automatically?
My friend and I are working as a team on a project through Dropbox. Previously I have used Eclipse and Eclipse would automatically update the files in view. Unfortunately every time we make a new change IntelliJ says this:
We then have to press Yes which then closes all of our tabs and is very annoying. Is there a way to disable this in IntelliJ? (We want it to work functionally equivalent to Eclipse if possible!)
I think this problem is caused not by changes in actual code files, but IDEA's configuration files, those that are in the .idea/ folder inside your project.
One way to resolve this would be to use Selective Sync to stop syncing configuration folder.
You can use the shortcut below to synchronize the classes.
ctrl + alt + y
And also check your intellij settings by navigating through HotSwap in File > Settings and then select Reload classes in background also you can use the shortcut as below to refresh.
ctrl + F5
I would suggest to stop using dropbox. Using git is a much better solution for collaboration, and there are free git services. There are even some that allow free private repos for smaller teams. IDE project files should generally not be part of your source code.
Also, there are additional benefits to using proper source code controls, such auditing and history, merging, and so much more.
My Java project uses JRuby. The Ruby files I execute are resources within the project. I modify those files with an external editor (TextMate). Before I run the project, I need to refresh it. I was looking for a way to have the resources automatically refreshed whenever I run the project, with Eclipse Kepler on Mac:
How do I configure eclipse to automatically refresh a project as part of it's build?
The answer is Window->Preferences->General->Workspace and check "Refresh automatically". However, there is no such thing as "Refresh automatically":
None of the checked options do what I was expecting.
Can Eclipse refresh resources automatically?
Settings > General > Workspace > Refresh On Access (aka Lightweight
Refresh). This preference causes Eclipse to automatically refresh
resources when it discovers that they're 'out-of-sync'.
No, that's not true. I run my project (without refreshing it) and Eclipse certainly did not refresh the resources.
A single click on a project, a CTRL+A to select everything, and an F5
should do exactly what you need - refresh everything.
That's what I've been doing. I wouldn't call that "automatic".
Eclipse 'refresh automatically' and Maven build interference
I recently configured Eclipse (ver. 3.6) in order to make it
automatically refresh projects in the workspace (Windows > Preferences > General > Workspace > Refresh Automatically).
What is this mythical "Refresh Automatically" everybody is talking about?
The option was renamed to Refresh using native hooks or polling which is on the Preference page you show.
On the Mac I believe it using polling - so there will be a background thread periodically checking for updates.
I am running Windows XP and Eclipse 4.2.2 Build id: M20130204-1200 and I have lost my Debug and Launch tool bars. I have tried Windows>Reset Perspective (original values) and Window>Customize Perspective's (Tool Bar Visibility and Command Groups Availability) tab options. I have tried the Layout option on Debug view. All failed to bring them back. Right now, I am looking at Tool Bar Visibility tab and a message that says: <"Debug" cannot be made available because it is in the unavailable "null" command group.> However, the Debug checkbox in Command Group Availability is checked.
I have also tried right-click and Reset on the perspective buttons.
Switching to another eclipse installation (same machine) did not help either.
Rebooting does not help.
Are there any text configuration files where this data is stored that can be manipulated outside eclipse?
I had this problem in Eclipse Kepler, it turns out it was caused by PyDev plugin. I fixed it by uninstalling the plugin and right-clicking on the Debug perspective button and selecting Reset.
I had already installed a fresh copy and the problems persisted. But, encouraged by user714965 comments, I tried again but that did not resolve the issue. Then, I threw away all eclipse installation folders (to recycle bin), re-installed fresh copy, and the problem persisted. Then I started a new workspace, and it seemed like the tool bars were back. Then restored previous eclipse installations and they had the Debug toolbar as well!
I am thinking somehow the customization config files were broken. It would be nice to know where the these files are stored (my original question): Are they global for each user on the machine or are they workspace specific? It seems to me that some customizations are global, while others are project specific.
May be it is time to try the new Android Studio :-)
Seems as your eclipse is broken. The fastest way to get it back running will be downloading a fresh copy from eclipse.org. You can continue using your current workspace so your settings will remain. But you have to re-install all plug-ins... I'm always keeping a backup of a fresh release with the plug-ins I'm using. I would suggest you to do the same in the future.
I'm using Eclipse for development because of all the things IntelliJ can't do (e.g. highlight all instances of a variable) and because IntelliJ is dog slow over a remote connection. But because I still don't have Maven integrated completely into Eclipse, I have to switch back to IntelliJ to compile and run my project using Tomcat.
How can I tell IntelliJ to detect all files that have changed on the file system and recompile them? (I don't want to manually open each changed file to get IntelliJ to detect the change.) In Eclipse I would just Refresh the project tree [1]...
Footnotes:
Eclipse has a feature (named "Refresh Using native hooks or polling") which you can enable to automatically detect changes and synchronise the perspective when any underlying changes are detected in the filesystem (see images below). This is quite handy and eliminates the need to manually refresh the project when using build tools - where files/directories get created in the project directory structure.
Is there anything similar for Intellij (explicit setting or otherwise) that eliminates having to click a button to synchronize the view with filesystem changes?
You can use the "synchronize" button (two yellow arrows) or in short Ctrl+Alt+Y
Intellij can highlight variable instances, you just need to enable it .
Further, if you invoke compile project, Intellij will just compile changed files (and hotswap when possible, if you are in debug mode & deploying to e.g. tomcat)
Right click on your Project in the left pane and click on "Synchronize"
You can see the status in the round circling icon at the bottom left of the IDE
I know this question was posted a few years ago, but maybe this info will help someone in the future. I was actually looking into a similar issue, and doing the following worked for me:
Go to Settings > Build, Execution, Deployment > Compiler and make sure "Make project automatically" is checked.
Click File>Synchronize (or) shortcut ctrl+Alt+Y
There is a synchronise button in the tool bar. Click it and it will refresh the project explorer