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

标签 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>

当我测试我的 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

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

最佳答案

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

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

yum install java-devel

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

dnf install java-devel

关于javac 命令在 linux 环境中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45771615/

相关文章:

java - Thread.sleep() 保证等待吗?

java - 是否可以在没有 NetBeans 项目的情况下在 NetBeans 之外使用 Jackpot?

Java:搜索错误编码的字符串而不修改它

linux - 如何将矩阵中的空白值替换为0

c++ - Linux c++ : getaddrinfo failed with EAI_AGAIN, curl 无法解析主机

c# - 如何使用 C# 访问 jar 文件(其中包含 Java .class 作为 API)

JavaFX:setStrokeType() 使我的程序变得非常慢

java - 如何在 Java 中使用正则表达式验证姓名、中间名和姓氏?

linux - 如何编写 stap (systemtap) 脚本来查看某个进程是否调用了特定的内核函数?

java - Object 类是如何实现的(hashCode 和内部字段等方法)?