javac does not work in ubuntu terminal

2020-05-30 07:32发布

问题:

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
 * gcj-4.6-jdk
 * gcj-4.7-jdk
 * openjdk-7-jdk
 * openjdk-6-jdk
Try: sudo apt-get install <selected package

When I try java -version, it says,

java version "1.7.0_21"
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-1ubuntu1)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

When I try which java I get /usr/bin/java

How do I compile my java program from commandline?

回答1:

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


回答2:

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!


回答3:

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.



回答4:

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


回答5:

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.



回答6:

just copy and paste on your Terminal

sudo apt install openjdk-8-jdk-headless