javac: ไม่พบคำสั่ง


111

ผมได้ติดตั้ง Java ในของฉันCentOS ปล่อย 5.5yum 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
ดูเหมือนวิธีแก้ปัญหาของคุณจะใช้yumถึงinstall java-1.6.0-openjdk-devel.x86_64
Vihung

คำตอบ:


125

คุณติดตั้ง Java Runtime Environment (JRE) เท่านั้นซึ่งไม่ได้มี javacสำหรับjavacคุณมีการติดตั้งการพัฒนาสิ่งแวดล้อม OpenJDK คุณสามารถติดตั้งjava-develหรือjava-1.6.0-openjdk-develซึ่งทั้งสองรุ่น javacได้แก่

โดยวิธีการ: คุณสามารถค้นหาว่าแพคเกจใดมีjavacการyumค้นหาเช่น

su -c 'yum provides javac'

ในรุ่นล่าสุดของ CentOS เช่น 6 คำสั่งจะเปลี่ยนเป็น

su -c 'yum provides */javac'

หมายเหตุอีกประการหนึ่ง: การใช้yumและopenjdkเป็นเพียงความเป็นไปได้เดียวในการติดตั้ง JDK หลายคนชอบ SDK "ดั้งเดิม" ของ Sun / Oracle ดูวิธีติดตั้ง Java SDK บน CentOS และลิงค์สำหรับทางเลือกอื่น ๆ


ใช่ฉันแน่ใจ. เพียงแค่ดูที่ข้อมูลแพ็คเกจ java-1.6.0-openjdk.x86_64 (เลื่อนไปที่ส่วน "ไฟล์") และดูว่าไม่มีjavacในแพ็คเกจนั้น แล้วมองไปที่แพคเกจ OpenJDK การพัฒนาสิ่งแวดล้อม
ขวาน

11
ขอบคุณสำหรับความช่วยเหลือ .. ฉันได้ใช้ "yum install java-1.6.0-openjdk-devel.x86_64"
Bikash Barman

6
ในyum provides javacผลลัพธ์Fedora 20 "ไม่พบรายการที่ตรงกัน"
Perseids

1
แต่เขาติดตั้ง 'openjdk' ใช่ไหม? JDK หมายถึงชุดพัฒนา java
มีดโกน

177

ทำงานให้ฉันด้วยคำสั่งนี้:

yum install java-devel

2
แต่นั่นเป็นการติดตั้ง JDK 6 ที่ล้าสมัยเหตุใดจึงไม่ติดตั้ง JDK 8? "yum install java" ติดตั้ง JRE 8.
jamshid

คุณสามารถ grep ผลลัพธ์ของ "yum list" เพื่อค้นหาเวอร์ชันของ java ที่คุณต้องการจากนั้นทำการ "yum install <package>" สำหรับฉันมันคือ "yum install java-1.7.0-openjdk-devel.x86_64"
Tom Barron

12
สำหรับการใช้งาน java8sudo yum install java-1.8.0-openjdk-devel
raghavsood33

1
นี่น่าจะเป็นคำตอบ
nikk

การติดตั้ง java อื่น ๆ ทำให้ javac เสียเวลา 2 ชม. จนกว่าฉันจะสะดุดกับสิ่งนี้
vivek ashodha


2

ฉันไม่รู้ว่าอะไรyum install javaจะติดตั้งจริง แต่ในการตรวจสอบการมีอยู่ของ javac ให้ทำ:

> updatedb
> locate javac

ควรเป็นรูท หากไม่มีคุณอาจติดตั้งเฉพาะ Java runtime (JRE) ไม่ใช่ Java Development Kit (JDK) คุณดีที่สุดในการรับสิ่งนี้จากไซต์ Oracle : เนื่องจาก Linux repos อาจล้าหลังเล็กน้อยกับเวอร์ชันล่าสุดและดูเหมือนว่าพวกเขาจะจัดหา open-jdk เท่านั้นเมื่อเทียบกับ Oracle / Sun one ซึ่งฉันต้องการให้เป็นทางเลือก .


1

javac สามารถทำงานได้ในไดเร็กทอรีที่เป็นส่วนหนึ่งของ PATH ของคุณหรือไม่?

ฉันไม่ทราบว่า CentOS เทียบเท่ากับเส้นทางของ Windows แต่ถ้าคุณ cd ไปยังไดเร็กทอรี java sdk และเรียกใช้. / javac จะเกิดอะไรขึ้น?


ปัญหาของฉันคือที่ที่เรียกใช้งาน javac จะปรากฏเป็นค่าเริ่มต้น
Bikash Barman

centos ไม่มีคำสั่ง locate? ตามคำแนะนำของ @Richard
BenCr

ฉันขอโทษ BenCr ฉันแก้ไขการพิมพ์ผิด (javajc => javac) แต่ระบบอนุญาตให้แก้ไขได้อย่างน้อย 6 ตัวอักษรเท่านั้นดังนั้นฉันจึงเปลี่ยนบางอย่างเพิ่มเติม ในระบบประเภท Unix (CentOS เป็น Unix บางประเภทหรือไม่) คุณต้องระบุ. / เพื่อเริ่มบางสิ่งในไดเร็กทอรีปัจจุบัน อย่าลังเลที่จะแก้ไขหากการแก้ไขของฉันได้รับการอนุมัติ
ไม่ทราบผู้ใช้

คุณยอมรับคำตอบผิดหรือเปล่า? ถ้าเป็นเช่นนั้นโปรดเปลี่ยนเป็นแบบที่ถูกต้องเพื่อไม่ให้ผู้อ่านสับสน
ขวาน

0

คุณได้ติดตั้ง Java Runtime Environment (JRE) แต่ไม่มี javac

ดังนั้นในเทอร์มินัลให้เข้าถึงผู้ใช้รูทsudo -iและป้อนรหัสผ่าน พิมพ์yum install java-develดังนั้นมันจะติดตั้งแพ็คเกจของ javac ใน fedora



0

ฉันใช้ Fedora (ปัจจุบัน 31)

แม้ว่าจะติดตั้ง JDK แล้วฉันก็ยังต้องระบุ JAVAC_HOME ใน. bashrc โดยเฉพาะอย่างยิ่งเนื่องจากฉันมี Java 4 เวอร์ชันโดยใช้ทางเลือก sudo - กำหนดค่า 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: /usr/java/jdk1.8.0_241-amd64/jre/bin

เส้นทางการส่งออก = $ PATH: /usr/java/jdk1.8.0_241-amd64/bin/

ตอนนี้ javac –version ให้: javac 1.8.0_241

สิ่งนี้มีประโยชน์สำหรับผู้ที่ต้องการใช้เวอร์ชันของ Oracle อย่าลืมเปลี่ยน. bashrc ของคุณอีกครั้งหากคุณทำการเปลี่ยนแปลงด้วยทางเลือก java


0

ลินุกซ์มิ้นต์ 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

ตอนนี้ทำตามเส้นทางนี้ Library/Java/JVM/bin

เมื่อคุณเข้าไปแล้วbinคุณจะเห็นjavacไฟล์

ตอนนี้คุณต้องได้รับเส้นทางของโฟลเดอร์นี้เพียงแค่เขียนคำสั่งนี้

pwd

รับเส้นทางสำหรับjavacไฟล์.


1
ระบบปฏิบัติการชื่อ OP คือ CentOS
Newb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.