30

当我尝试使用 编译 java 程序时javac,出现错误:

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 程序?

4

7 回答 7

48

正如@Blorgbeard 所提到的,您很可能没有安装Java JDK(Java 开发工具包)。有关可用于 Ubuntu 的各种 Java 版本的更多信息,请参阅此网页。

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

apt-get install default-jdk
于 2013-04-28T21:13:04.660 回答
10

我有 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!
于 2013-10-09T09:57:10.850 回答
5

就我而言,我安装了 JDK,但我手动安装了它,所以它没有添加到路径中。一旦我将这些行添加到我的 .zshrc 文件(我使用的是 zsh;如果您使用的是 bash,请将它们添加到 .bash_profile)并重新启动终端,它就可以工作了:

# Java environment variables
export JAVA_HOME='/opt/jdk/jdk1.8.0_241'  #change accordingly; this needs to match your JDK's location!
export PATH=$PATH:$JAVA_HOME/bin
于 2017-08-22T03:22:23.823 回答
3

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

sudo apt-get install openjdk-7-jdk

之后编译的应用程序。不知道上述解决方案有什么区别。也许我不必指定一个版本。

于 2014-02-01T03:52:24.703 回答
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 或创建符号链接。可以在无法在 Ubuntu 上运行 javac的页面上找到对此的帮助。

于 2018-09-17T00:08:13.100 回答
0

只需复制并粘贴到您的终端上

sudo apt install openjdk-8-jdk-headless

于 2017-07-27T08:14:02.987 回答
0

有同样的问题。通过使用 Yum 安装 OpenJDK 8 修复:

sudo yum install java-1.8.0-openjdk-devel
于 2021-04-15T18:23:01.873 回答