javac: không tìm thấy lệnh


111

Tôi đã cài đặt java trong máy CentOS phiên bản 5.5 của mình bằng lệnh yum install java. Nhưng tôi không thể biên dịch một lớp bằng javac.

Tôi có cần cài đặt bất kỳ gói nào khác không?

Tôi đã cố gắng định vị javactệp thực thi nhưng tôi không thể định vị được.

/usr/bin/javađược liên kết như sau:
/usr/bin/java-> /etc/alternatives/java
/etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Tôi đã thấy kết quả sau bằng cách 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
Có vẻ như giải pháp của bạn là sử dụng yumđểinstall java-1.6.0-openjdk-devel.x86_64
Vihung

Câu trả lời:


125

Bạn chỉ cài đặt Java Runtime Environment (JRE), không chứajavac . Đối với javac, bạn phải cài đặt Môi trường phát triển OpenJDK . Bạn có thể cài đặt java-develhoặc java-1.6.0-openjdk-devel, cả hai đều bao gồm javac.

Bằng cách này: bạn có thể tìm ra các gói cung cấp javacvới một yumtìm kiếm , ví dụ:

su -c 'yum provides javac'

trên các bản phát hành gần đây hơn của CentOS, ví dụ 6, lệnh thay đổi thành

su -c 'yum provides */javac'

Một lưu ý khác: sử dụng yumopenjdkchỉ là một khả năng để cài đặt JDK. Nhiều người thích SDK "gốc" của Sun / Oracle. Xem Cách cài đặt Java SDK trên CentOS? và liên kết cho các lựa chọn thay thế.


Vâng tôi chắc chắn. chỉ cần nhìn vào thông tin gói java-1.6.0-openjdk.x86_64 (cuộn đến phần "Tệp") và thấy rằng không có javacgói đó. và sau đó xem xét gói Môi trường phát triển OpenJDK .
rìu.

11
Nhờ sự giúp đỡ của bạn .. Tôi đã sử dụng "yum install java-1.6.0-openjdk-devel.x86_64"
Bikash Barman

6
Trên Fedora 20 yum provides javacđầu ra "Không tìm thấy kết quả phù hợp".
Perseids

1
nhưng anh ấy đã cài đặt 'openjdk', phải không? JDK có nghĩa là bộ phát triển java
razor

177

Làm việc cho tôi với lệnh này:

yum install java-devel

2
Nhưng cài đặt JDK đã lỗi thời 6. Tại sao nó không cài đặt JDK 8? "yum install java" không cài đặt JRE 8.
Jamshid

Bạn có thể grep đầu ra của "yum list" để tìm phiên bản java bạn muốn, sau đó thực hiện "yum install <package>". Đối với tôi, đó là "yum install java-1.7.0-openjdk-devel.x86_64"
Tom Barron

12
Để sử dụng java8 sudo yum install java-1.8.0-openjdk-devel
raghavsood33

1
đây sẽ là câu trả lời.
nikk

Các cài đặt java khác không cung cấp javac lãng phí 2 giờ cho đến khi tôi tình cờ gặp phải điều này
vivek ashodha

28

Sử dụng lệnh sudo sau:

sudo yum install java-1.6.0-openjdk-devel

2

Tôi không biết chính xác những gì yum install javasẽ thực sự cài đặt. Nhưng để kiểm tra sự tồn tại của javac, hãy làm:

> updatedb
> locate javac

tốt nhất là gốc. Nếu nó không có ở đó, có thể bạn chỉ cài đặt Java runtime (JRE) chứ không phải Java Development Kit (JDK). Tốt nhất bạn nên lấy điều này từ trang Oracle : vì các repo Linux có thể hơi chậm so với các phiên bản mới nhất và chúng dường như chỉ cung cấp open-jdk thay vì Oracle / Sun, điều mà tôi muốn đưa ra lựa chọn hơn .


1

Javac có thực thi được trong thư mục là một phần của PATH của bạn không?

Tôi không biết CentOS tương đương với đường dẫn Windows nhưng nếu bạn cd vào thư mục java sdk và chạy ./javac thì có gì xảy ra không?


Vấn đề của tôi là nơi mà các javac thực thi sẽ có mặt theo mặc định
Bikash Barman

centos không có lệnh xác định vị trí? theo đề xuất của
@Richard

Tôi xin lỗi BenCr, tôi đã sửa một lỗi chính tả (javajc => javac) nhưng hệ thống chỉ cho phép sửa ít nhất 6 ký tự, vì vậy tôi đã thay đổi một số thứ khác. Trên các hệ thống kiểu Unix (CentOS có phải là một loại Unix nào đó không?), Bạn phải chỉ định ./ để bắt đầu một cái gì đó trong thư mục hiện tại. Vui lòng chỉnh sửa, nếu các chỉnh sửa của tôi được chấp thuận.
người dùng không xác định

bạn đã chấp nhận câu trả lời sai? nếu có, xin vui lòng chuyển sang một bên phải để không gây nhầm lẫn cho người đọc.
rìu.

0

Bạn đã cài đặt Java Runtime Environment (JRE) nhưng nó không chứa javac.

Vì vậy, trên thiết bị đầu cuối, hãy truy cập vào người dùng root sudo -ivà nhập mật khẩu. Nhập yum install java-devel, do đó nó sẽ cài đặt các gói javac trong fedora.


0

Cài đặt cùng một phiên bản javacvới của bạnJRE

yum install java-devel

0

Tôi sử dụng Fedora (hiện 31 tuổi)

Ngay cả khi đã cài đặt JDK, tôi vẫn cần chỉ định JAVAC_HOME trong .bashrc, đặc biệt vì tôi có 4 phiên bản Java sử dụng các lựa chọn thay thế sudo - cấu hình java để chuyển đổi giữa chúng.

Để tìm vị trí java của java được chọn trong các lựa chọn thay thế

readlink -f $ (java nào)

Trong trường hợp của tôi: /usr/java/jdk1.8.0_241-amd64/jre/bin/java

Vì vậy, tôi đặt sau trong .bashrc thành:

xuất JAVA_HOME = / usr / java / jdk1.8.0_241-amd64 / jre / bin / java

xuất JAVAC_HOME = / usr / java / jdk1.8.0_241-amd64 / bin / javac

xuất PATH = $ PATH: /usr/java/jdk1.8.0_241-amd64/jre/bin

xuất PATH = $ PATH: /usr/java/jdk1.8.0_241-amd64/bin/

Bây giờ javac –version cung cấp: javac 1.8.0_241

Điều này rất hữu ích cho những ai muốn sử dụng phiên bản của Oracle. Chỉ cần nhớ thay đổi lại .bashrc của bạn nếu bạn thực hiện thay đổi với các lựa chọn thay thế java.


0

Linux Mint 19.3

Tôi đã cài đặt Java Oracle theo cách thủ công, như sau:

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

0

Điều này đã làm việc cho tôi: sudo dnf install java-<version>-devel


-2

Đảm bảo rằng bạn cài đặt JDK / JRE trước.

làm theo các bước sau:

mở thiết bị đầu cuối đi đến từ điển gốc của bạn bằng cách gõ

cd /

bạn sẽ thấy thư mục Thư viện

Bây giờ đi theo con đường này Library/Java/JVM/bin

Khi bạn vào binbạn có thể thấyjavac tệp

Bây giờ bạn cần lấy đường dẫn của thư mục này chỉ cần viết lệnh này

pwd

có được con đường cho của bạn javac.


1
Hệ điều hành OP có tên là CentOS.
Newb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.