Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
web:eclipse [2025/06/15 16:42] Bernard Condrauweb:eclipse [2026/01/29 13:31] (current) – [Setup] Bernard Condrau
Line 14: Line 14:
 ===== WSL Settings ===== ===== WSL Settings =====
   - To change the default setting of WSL (WSL1/WSL2) to allow file permissions on mounted Windows drives add the file ''wsl.conf'' with the following content to ''/etc'' in your linux distro:<code>[automount]   - To change the default setting of WSL (WSL1/WSL2) to allow file permissions on mounted Windows drives add the file ''wsl.conf'' with the following content to ''/etc'' in your linux distro:<code>[automount]
-options="metadata"</code> +options="metadata,umask=22,fmask=11"</code> 
-  - Stop wsl from the Windows command line:<code>wsl --shutdown</code>+  - Stop wsl from the Windows command line:<code>wsl --shutdown [OR] wsl -t NAME</code> 
 +  - Start wsl from the Windows command line:<code>wsl [OR] wsl --distribution NAME</code> 
 +  - Check wsl instances from the Windows command line:<code>wsl -l -v</code>
  
 +===== Install Eclipse IDE on WSL2 =====
 +From the next chapter onwards this guide explains how to use Eclipse IDE under Windows. Installing Eclipse within Debian and running it from Windows through an X-Server has the huge advantage that the file permissions are maintained propberly. This chapter is taken from [[https://gist.github.com/rsenden/7bc96a3e678b60e61c750517ca8de883|Run Eclipse in WSL2]] with changes to adapt to my particular environment, specially that I run WSL2 in mirrored networking mode. To do that, create file ''C:\Users\<user>\.wslconfig'' with the following content:<code>[wsl2]
 +networkingMode=mirrored</code>
 + ==== Setup ====
 +[[https://serverfault.com/questions/218745/disable-ipv6-on-loopback-address-localhost-computer-name|IPv4 over IPv6 on Windows]]
 +
 +Access WSL2 using putty
 +Run Eclipse on WSL2 Ubuntu, displaying the Eclipse UI on VcXsrv running on Windows
 +Connecting to VcXsrv directly from WSL2
 +Using SSH X11 forwarding, with network connection initiated from Windows to WSL2 Ubuntu, which is particularly useful on company laptops that refuse all incoming network connections on Windows.
 +Prerequisites:
 +
 +WSL2 up and running
 +Putty, Plink & PuttyGen installed on Windows
 +WSL2 Ubuntu: Install & configure OpenSSH
 +
 +sudo apt install openssh-server
 +
 +Edit /etc/ssh/sshd_config:
 +
 +  X11Forwarding yes
 +  X11DisplayOffset 10
 +  X11UseLocalhost no
 +sudo ssh-keygen -A
 +
 +sudo service ssh start
 +
 +Auto-start SSH daemon:
 +
 +WSL2 Ubuntu: mkdir -p ~/bin ; echo "sudo service ssh start" >> ~/bin/startup.sh
 +Windows: Create scheduled task that runs on user logon, running C:\Windows\System32\bash.exe with arguments /home/<user>/bin/startup.sh
 +Windows: Configure SSH public key authentication using PuttyGen:
 +
 +See https://www.puttygen.com/#How_to_use_PuTTYgen for general instructions
 +Run PuttyGen
 +Generate new key pair, or convert existing key pair
 +Save private key to ppk file; this will used later when connecting to WSL2 Ubuntu using Putty or PLink
 +Add the SSH public key to ~/.ssh/authorized_keys on WSL2 Ubuntu
 +Windows: Create putty profile to connect to WSL2 Ubuntu:
 +
 +Session
 +Host Name: localhost
 +Port: 22 (or whatever OpenSSH port you configured on WSL2 Ubuntu)
 +Connection -> Data:
 +Auto-login username: <your user name>
 +Connection -> SSH -> Auth:
 +Private key file for authentication: <key file generated by PuttyGen in step #2>
 +Connection -> SSH -> X11:
 +Enable X11 forwarding (if you want to start X11 programs)
 +X display location: 127.0.0.1:0.0 (this should match whatever DISPLAY value is shown in VcXsrv logs)
 +Windows: Install & configure VcXsrv:
 +
 +Download & install https://sourceforge.net/projects/vcxsrv/
 +Copy config.xlaunch as shown below to the Startup folder (Win+R: shell:startup)
 +Launch config.xlaunch to start the X Server manually for now
 +WSL2 Ubuntu: Install Eclipse & prerequisites:
 +
 +sudo apt-get install openjdk-11-jdk
 +sudo apt-get install libgtk-3-0
 +Download and unpack Eclipse for Linux to ~/eclipse
 +Windows: Eclipse shortcut using SSH X11 tunnel:
 +
 +Manually try starting Eclipse from Windows by running the following command:
 +plink.exe -batch -X -i <path to .ppk from step #2> <Ubuntu username>@localhost ~/eclipse/eclipse
 +Copy silent.vbs and plink-silent.cmd (see attached files) to the directory where PLink.exe is installed
 +Create a new shortcut that runs the following command:
 +C:\Windows\System32\cmd.exe /c "C:\<path to plink>\plink-silent.cmd -batch -X -i <path to .ppk from step #2> <Ubuntu username>@localhost ~/eclipse/eclipse"
 +Double-click the shortcut; if all is well you should see the Eclipse UI after a couple of seconds
 +Windows: Eclipse shortcut using direct XServer connection:
 +
 +Add the following lines to ~/.profile on WSL2 Ubuntu (create file if it doesn't yet exist):
 +export DISPLAY=:0
 +export LIBGL_ALWAYS_INDIRECT=1
 +Note that having these lines in .bashrc won't work as .bashrc is only loaded for interactive shells
 +Create a new shortcut that runs the following command:
 +C:\Windows\System32\wsl.exe -u <WSL2 user> -- bash -lc 'nohup ~/eclipse/eclipse' ^& sleep 1
 ===== LAMP with Xdebug ===== ===== LAMP with Xdebug =====
   * Follow [[deb12:lamp|LAMP on Debian 12]]   * Follow [[deb12:lamp|LAMP on Debian 12]]
  
 ===== Eclipse IDE ===== ===== Eclipse IDE =====
 +
 +==== PHP ====
 +  * Make sure ''display_errors'' is set to ON in apache's php.ini file and not overridden in the apache VirtualHost file 
  
 ==== Java ==== ==== Java ====