When I try to compile a java program with javac
, I get an error:
The program \'javac\' can be found in the following packages:
* default-jdk
* ecj
just copy and paste on your Terminal
sudo apt install openjdk-8-jdk-headless
Actually, java command was working on my ubuntu 16.04 but not javac. At first, I fiddled around with the environment paths and all as i thought i had all java packages installed and the issue was with setting the environment path variable.
Then i tried the command update-alternatives --list java
which returned a path but update-alternatives --list javac
did not.
This explained to me that javac needed to be installed so I ran sudo apt-get install default-jdk
But incase you get a path in running the update-alternatives --list javac
then i suggest you should try setting up your $JAVA_PATH or creating symbolic links. Help to that can be found on the page unable to run javac on Ubuntu.
In my case, I had the JDK installed, but I'd installed it manually so it wasn't added to the path. Once I added these lines to my .zshrc file (I'm using zsh; if you're using bash, add them to .bash_profile) and relaunched the terminal, it worked:
# Java environment variables
export JAVA_HOME='/opt/jdk/jdk1.8.0_241' #change accordingly; this needs to match your JDK's location!
export PATH=$PATH:$JAVA_HOME/bin
As mentioned by @Blorgbeard you most likely do not have a Java JDK (Java Development Kit) installed. See this web page for more information about the various versions of Java available for Ubuntu.
The following command will install the OpenJDK version of the Java JDK:
apt-get install default-jdk
I have Ubuntu 12.10, with java "1.6.0_27", this command makes javac available:
sudo apt-get install default-jdk
Then compile it like this:
el@apollo:~/retreat3$ javac HelloWorld.java
el@apollo:~/retreat3$ java HelloWorld
Hello, World!
I was having the same problem. I used the following command
sudo apt-get install openjdk-7-jdk
The app compiled after that. Not sure what the difference is to the above solutions. Maybe I wouldn't of had to specify a version.