0

I'm trying to install lombok in the Spring Tool Suite 4 ide which is in the /opt folder on Ubuntu. The command: java -jar lombok.jar does not work because the opt folder requires privileges. enter image description here

I tried using the command suggested by the installation software: sudo java -jar lombok.jar I get the result:

sudo: java: command not found

Note: I have the SDKMAN software development kit manager installed to manage java versions.

  • 1
    (1) Easy way is: DO NOT PUT `sts-4.17.1.RELEASE` in `/opt` or use INSTALL, just download it , unzip, put it in your user folder like `~/TOOLS/sts-4.17.1.RELEASE` (2) And Why ? Because sdkman is under per user. root does not have sdkman or java. If you run `sudo java`, root does not have java. – life888888 Jan 12 '23 at 02:28
  • In fact root doesn't have sdkman. – Clauber Martins Jan 17 '23 at 17:26

1 Answers1

1

Because root does not have sdkman install. root can not get java.

You can do this:

sudo su -

mkdir -p /usr/lib/jvm

cd /usr/lib/jvm

ln -s /home/YourUserName/.sdkman/candidates/java/current jdk

nano /root/.bashrc

# ADD This 
export JAVA_HOME=/usr/lib/jvm/jdk
export PATH=/usr/lib/jvm/jdk/bin:$PATH

# Ctrl + O save 
# Ctrl + X exit nano

exit

UPDATE:

Add JDK Path to sudoers config:

Run Command : sudo nano /etc/sudoers

find Defaults secure_path="/usr/local/sb..."

append :/usr/lib/jvm/jdk/bin at end of this line

it will like Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/lib/jvm/jdk/bin"

save and exit nano.

Test: sudo java -version

Then you can run sudo java -jar lombok.jar

life888888
  • 835
  • 2
  • 2
  • 8
  • 1. I don't own this folder: `/usr/lib/jvm` 2. However, `/home/.bashrc` has the following configuration: #THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! `export SDKMAN_DIR="$HOME/.sdkman" [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"` – Clauber Martins Jan 13 '23 at 20:47
  • (1) `sudo mkdir -p /usr/lib/jvm` (2) config `/root/.bashrc` not your account `.bashrc` (root do not need install sdkman ) (3) add in /root/.bashrc is point to `/usr/lib/jvm/jdk` (4) then `/usr/lib/jvm/jdk` the link is point to your `/home/YourUserName/.sdkman/candidates/java/current` – life888888 Jan 14 '23 at 02:47
  • I couldn't, follow the steps in the terminal: (1) clauber@clauber:~$ `sudo su -` > [sudo] senha para clauber: (2) root@clauber:~# `mkdir -p /usr/lib/jvm` (3) root@clauber:~# `cd /usr/lib/jvm` (4) root@clauber:/usr/lib/jvm# `ln -s /home/clauber/.sdkman/candidates/java/current jdk` (5) root@clauber:/usr/lib/jvm# `nano /root/.bashrc` (6) root@clauber:/usr/lib/jvm# `exit` (7) clauber@clauber:~$ `sudo java -jar lombok.jar` > sudo: java: command not found – Clauber Martins Jan 16 '23 at 17:52
  • run this , `sudo cat /root/.bashrc` , last two lines should be `export JAVA_HOME=/usr/lib/jvm/jdk export PATH=/usr/lib/jvm/jdk/bin:$PATH`, no more – life888888 Jan 16 '23 at 17:58
  • That's correct, I believe that the default java environment var settings must be different from sdkman. I was able to install lombok with the default java install and then reinstall sdkman. – Clauber Martins Jan 16 '23 at 18:37
  • I am sorry, I update my answer, Find `UPDATE`, I add sudoers config. – life888888 Jan 17 '23 at 01:44