javac命令在linux环境中不起作用

JPG*_*JPG 3 java linux jvm

我已经成功地在我的linux系统上安装了 java 。当我从桌面运行 hello world 测试示例时,它运行成功,但是几天后,当我再次尝试使用javac命令从终端运行它时,它给了我以下响应:

The program 'javac' can be found in the following packages:
 * default-jdk
 * ecj
 * gcj-5-jdk
 * openjdk-8-jdk-headless
 * gcj-4.8-jdk
 * gcj-4.9-jdk
 * openjdk-9-jdk-headless
Try: sudo apt install <selected package>
Run Code Online (Sandbox Code Playgroud)

当我测试我的环境时JAVA_HOME。使用echo $JAVA_HOME其显示的变量: /usr/lib/jvm/java-8-openjdk-amd64

它也有PATH变量。当我运行一个which java命令时,它显示: /usr/lib/jvm/java-8-openjdk-amd64/bin/java

并使用命令whereis java显示: java: /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/share/man/man1/java.1.gz

所以,我不明白这个问题,因为我自己应用了 env。变量,它显示一切都很完美,那么为什么javac命令没有运行?任何人都可以看看这个问题。

Edw*_*uck 7

核心问题是您的系统上没有安装 Java 开发工具包(与 Java 运行时不同)。这意味着用于创建 Java 程序的实用程序(例如 javac、jar 等)不在您的系统上。

Thorbjørn Ravn Andersen 给出了 Debian 系列 Linux 系统的答案,这里是 RedHat 系列系统的答案

yum install java-devel
Run Code Online (Sandbox Code Playgroud)

或者如果您使用的是最新的 Fedora

dnf install java-devel
Run Code Online (Sandbox Code Playgroud)


Jon*_*nas -1

/usr/lib/jvm/java-8-openjdk-amd64/bin/java

不是目录,它是可执行文件。尝试执行以下命令来使用 javac:

/usr/lib/jvm/java-8-openjdk-amd64/bin/javac
Run Code Online (Sandbox Code Playgroud)

或者

/usr/lib/jvm/java-8-openjdk-amd64/bin/jstack
Run Code Online (Sandbox Code Playgroud)