An easy to setup option would be to run Eclipse natively in windows but deploy the code via a Samba share on the Linux machine (which you can mount as another drive) (or SSH/SCP if SMB is not an option) and then run it there via SSH console.
Another easy to setup option is to simply develop on Linux via freenx or a similar tool instead of a full blown X session, check this answer: https://serverfault.com/questions/11367/remote-desktopping-from-windows-to-linux/11372#11372
The other options (Virtualization, Linux running inside windows, Cygwin) are indeed valid but have their drawbacks, like being more machine demanding, harder to setup, or not equivalent enough to the actual linux environment, but may very well be worth your while if you have the machine and the scenario justifies their use.
Doing everything on the Linux side will always have some drawbacks
if your machine is Windows.
I personally have a Linux box where everybody else has Windows and
do Windows dev inside a VM, but it has costed me a lot of RAM and some network setup pains.