java - 无法在 Ubuntu 上运行 javac

标签 java ubuntu javac

我正在尝试在 Ubuntu 终端上运行 javac。但我得到以下信息:

 $ javac
 The program 'javac' can be found in the following packages:
 * openjdk-6-jdk
 * ecj
 * gcj-4.4-jdk
 * gcj-4.6-jdk
 * gcj-4.5-jdk
 * openjdk-7-jdk
 Try: sudo apt-get install <selected package>

jdk 已经安装并正在运行 sudo apt-get install openjdk-6-jdk0 升级,0 新安装,0 删除,322 未升级。

我的jdk安装在/usr/lib/jvm/java-6-open-jdk;我能够从 Eclipse 编译和运行一个 java 程序。但是我在使用终端时遇到了上述问题。

最佳答案

javac 二进制文件(可能还有其他 java 二进制文件)在/不在您用户的 $PATH 环境变量中。有几种方法可以解决这个问题:

  1. /usr/lib/jvm/java-6-open-jdk/bin 添加到用户的 $PATH 环境变量中。您可以通过在用户的 .bash_profile 中添加类似于以下内容的行来做到这一点:

    导出 PATH=${PATH}:/usr/lib/jvm/java-6-open-jdk/bin

    您必须重新启动终端 session 才能使其生效。

  2. 从某个目录(例如 /usr/bin)中创建指向 Java 二进制文件的符号链接(symbolic link)

    sudo ln -s/usr/lib/jvm/java-6-open-jdk/bin/java/usr/bin/
    sudo ln -s/usr/lib/jvm/java-6-open-jdk/bin/javac/usr/bin/

    顺便说一句:/usr/lib/jvm/java-6-open-jdk/bin 中还有其他几个 java 可执行文件。我已经在上面展示了 javajavac 的符号链接(symbolic link)命令。您应该为您可能想要使用的任何其他可执行文件运行类似的命令。

  3. 直接在命令行使用全限定路径:

    $/usr/lib/jvm/java-6-open-jdk/bin/javac

更新:

显然,对于这个问题有一个优雅但特定于 Ubuntu 的解决方案。在 Ubuntu 系统上,使用 update-java-alternatives .

关于java - 无法在 Ubuntu 上运行 javac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864612/

相关文章:

java - 不同的 Java 编译器(供应商不同)是否会产生不同的字节码

java - 在 Java Swing 中,如何管理允许选择多个面板的面板列表?

java - 自定义 Bean 验证不起作用

linux - 如何设置路径以在终端中运行 Gitea 命令而不考虑目录?

javascript - 目录 "javascript"被完全忽略

python-3.x - 为什么在 MacOS 和 Ubuntu 上运行程序时感知时区的日期时间不同?

java - 如何从通用数组列表中找到最小值?

java - Android OpenGLES 1.0 视口(viewport)以错误的分辨率呈现

java - 为旧版本的 Java 进行交叉编译时,在哪里可以找到 Bootstrap 类?

java - 将 JRE 复制到 docker 并运行 java 命令时出现问题