javac:找不到命令


111

我已经使用命令在CentOS 5.5版机器中安装了Java yum install java。但是我无法使用javac编译类。

我是否需要安装其他软件包?

我试图找到javac可执行文件,但是我找不到它。

/usr/bin/java链接如下:
/usr/bin/java-> /etc/alternatives/java
/etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

我已经看到了以下输出yum list installed |grep java

java-1.6.0-openjdk.x86_64              1:1.6.0.0-1.16.b17.el5          installed
tzdata-java.x86_64                     2011b-1.el5                     installed

3
它看起来像你的解决方案是使用yuminstall java-1.6.0-openjdk-devel.x86_64
Vihung

Answers:


125

您仅安装了Java Runtime Environment(JRE),其中不包含javac。为此javac,您必须安装OpenJDK开发环境。您可以安装java-develjava-1.6.0-openjdk-devel,两者都包括javac

顺便说一句:您可以找出哪个包提供javacyum搜索,例如

su -c 'yum provides javac'

在较新版本的CentOS上,例如6,命令更改为

su -c 'yum provides */javac'

另一个注意事项:使用yumopenjdk只是安装JDK的一种可能。许多人喜欢Sun / Oracle的“原始” SDK。请参阅如何在CentOS上安装Java SDK?以及替代方法的链接。


是的,我敢肯定。只需查看java-1.6.0-openjdk.x86_64软件包信息(滚动到“文件”部分),然后查看javac该软件包中没有。然后看一下OpenJDK开发环境包
斧头。

11
感谢您的帮助。我使用了“ yum install java-1.6.0-openjdk-devel.x86_64”
Bikash Barman

6
在Fedora 20上yum provides javac输出“未找到匹配项”。
英仙座

1
但是他安装了'openjdk',对吗?JDK意味着Java开发工具包
razor

177

使用以下命令为我工作:

yum install java-devel

2
但这会安装过时的JDK6。为什么不安装JDK 8?“百胜安装java”并安装JRE 8
jamshid

您可以grep“ yum list”的输出来找到所需的Java版本,然后执行“ yum install <package>”。对我来说,这是“ yum install java-1.7.0-openjdk-devel.x86_64”
Tom Barron

12
对于Java8使用sudo yum install java-1.8.0-openjdk-devel
raghavsood33,2013年

1
这应该是答案。
尼克

其他java安装dint提供的javac浪费了2个小时,直到我
迷迷糊

28

使用以下sudo命令:

sudo yum install java-1.6.0-openjdk-devel

2

我不知道确切yum install java安装什么。但是要检查javac是否存在,请执行以下操作:

> updatedb
> locate javac

最好作为根。如果不存在,那么您可能只安装了Java运行时(JRE)而不安装了Java Development Kit(JDK)。您最好从Oracle站点获取此信息:由于Linux仓库在最新版本中可能会稍微落后,而且它们似乎仅提供open-jdk而不是Oracle / Sun,我更愿意选择。


1

javac可执行文件是否在PATH的目录中?

我不知道Windows路径的CentOS等效项,但是如果您CD到java sdk目录并运行./javac,会发生什么事情吗?


我的问题是Javac可执行文件默认存在的位置
Bikash Barman

centos没有定位命令吗?如建议通过@Richard
BenCr

很抱歉,BenCr,我更正了一个错字(javajc => javac),但是系统仅允许更正至少6个字符,因此我做了一些改动。在Unix类型的系统上(CentOS是某种Unix吗?),您必须指定./才能在当前目录中启动某些内容。如果我的编辑获得批准,请随时重新编辑。
用户未知

您是否接受了错误的答案?如果是这样,请更改为正确的名称,以免混淆读者。
斧头。

0

您已经安装了Java Runtime Environment(JRE),但其中不包含Javac。

因此,在终端上可以访问root用户sudo -i并输入密码。键入yum install java-devel,因此它将在fedora中安装javac软件包。


0

安装与javac您的版本相同的版本JRE

yum install java-devel

0

我使用Fedora(当前为31)

即使安装了JDK,我仍然需要在.bashrc中指定JAVAC_HOME,尤其是因为我有4个Java版本使用sudo替代--configure java在它们之间进行切换。

查找在替代方案中选择的Java的Java位置

readlink -f $(哪个java)

就我而言:/usr/java/jdk1.8.0_241-amd64/jre/bin/java

所以我在.bashrc中将以下内容设置为:

导出JAVA_HOME = / usr / java / jdk1.8.0_241-amd64 / jre / bin / java

导出JAVAC_HOME = / usr / java / jdk1.8.0_241-amd64 / bin / javac

导出PATH = $ PATH:/usr/java/jdk1.8.0_241-amd64/jre/bin

导出PATH = $ PATH:/usr/java/jdk1.8.0_241-amd64/bin/

现在,javac –version给出:javac 1.8.0_241

这对于想要使用Oracle版本的用户很有用。如果您使用Java替代方法进行更改,只需记住再次更改.bashrc。


0

Linux Mint 19.3

我手动安装了Java Oracle,如下所示:

$ sudo ln -s /usr/lib/jvm/java-1.8.0_211/bin/javac /usr/bin/javac


-2

确保首先安装JDK / JRE。

跟着这些步骤:

打开终端,通过键入您的根字典

cd /

你会看到图书馆文件夹

现在走这条路 Library/Java/JVM/bin

一旦进入,bin您可以看到javac文件

现在,您需要获取此文件夹的路径,只需编写此命令

pwd

找到你的道路javac


1
操作系统的OP名称为CentOS。
Newb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.