javac在ubuntu终端中不起作用

问题描述 投票:17回答:7

当我尝试用javac编译java程序时,我收到一个错误:

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

当我尝试java -version时,它说,

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)

当我尝试哪种java我得到/usr/bin/java

如何从命令行编译我的java程序?

java ubuntu javac
7个回答
28
投票

正如@Blorgbeard所提到的,您很可能没有安装Java JDK(Java Development Kit)。有关可用于Ubuntu的各种Java版本的更多信息,请参阅this web page

以下命令将安装Java JDK的OpenJDK版本:

apt-get install default-jdk

4
投票

我有Ubuntu 12.10,java“1.6.0_27”,这个命令使javac可用:

sudo apt-get install default-jdk

然后像这样编译:

el@apollo:~/retreat3$ javac HelloWorld.java
el@apollo:~/retreat3$ java HelloWorld
Hello, World!

3
投票

我遇到了同样的问题。我使用了以下命令

sudo apt-get install openjdk-7-jdk

之后编译的应用程序。不确定上述解决方案有何不同。也许我不必指定版本。


1
投票

实际上,java命令正在我的ubuntu 16.04上工作但不是javac。起初,我摆弄了环境路径,因为我认为我安装了所有java包,问题在于设置环境路径变量。

然后我尝试了命令update-alternatives --list java返回路径,但update-alternatives --list javac没有。这向我解释说需要安装javac才能运行sudo apt-get install default-jdk

但是,如果您在运行update-alternatives --list javac时获得了一条路径,那么我建议您尝试设置$ JAVA_PATH或创建符号链接。可以在页面unable to run javac on Ubuntu上找到帮助。


0
投票

只需在终端上复制并粘贴即可

sudo apt install openjdk-8-jdk-headless


0
投票

在我的情况下,我安装了JDK,但我手动安装它,因此它没有添加到路径中。一旦我将这些行添加到我的.zshrc文件中(我正在使用zsh;如果你使用bash,将它们添加到.bash_profile)并重新启动终端,它可以工作:

# Java environment variables
export JAVA_HOME='/opt/java/jdk1.8.0_144'  #change accordingly; this needs to match your JDK's location!
export PATH=$PATH:$JAVA_HOME/bin
© www.soinside.com 2019 - 2024. All rights reserved.