我有一个 Java 计算机程序,可以在 Eclipse 中顺利编译。我想从命令行编译它并收到消息javac not found
。我认为我只是没有正确设置路径,但后来我做了一个locate javac
,我只得到:
/usr/share/bash-completion/completions/javac
/usr/share/vim/vim74/compiler/javac.vim
/usr/share/vim/vim74/syntax/javacc.vim
并且它不存在
/usr/lib/jvm/java-7-openjdk-amd64/bin/
在 Eclipse 中,它似乎正在使用此 JDK,因此我不确定如何解释 Eclipse 的编译方式。我是不是遗漏了什么愚蠢的东西?谢谢。
答案1
默认 Java运行Ubuntu 上的 JRE 是 OpenJDK(而不是 Oracle/Sun)。与 OpenJDK 这个名称不同,它由两部分组成:JRE(default-jre
)和 JDK(default-jdk
)。
要安装 JDK(提供javac
),请安装元包默认 jdk一切就绪。
如果您安装了多个 Java 运行时或 Java 编译器,请使用以下命令选择正确的一个update-alternatives
:
sudo update-alternatives --config java # runtime
sudo update-alternatives --config javaws # runtime Web Start (applets)
sudo update-alternatives --config javac # compiler
答案2
看起来您使用的 openjdk 不是一个 jdk(除了名称之外)。它只是一个 jvm(它可以运行 java 程序但不能编译它们)。
我的解决方案是从 oracle 网站下载 jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
(此链接适用于 jdk7,如果您需要其他版本,只需在网站中查找 jdk 即可)。
答案3
看起来我的默认安装附带了一些奇怪的 Java 版本 - 不是 OpenJDK,而是另一个版本。我执行了 aptitude 安装以获取 openjdk-7,然后一切正常。
我很困惑,因为 Eclipse 在没有系统上的 javac 的情况下进行编译,但我猜 Eclipse 里面有一些工具可以让它进行编译。