'Java' không được công nhận là lệnh bên trong hoặc bên ngoài


158

Khi thử kiểm tra phiên bản Java hiện tại mà tôi đang chạy, tôi đã nhận được lỗi "java không được nhận dạng là một lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó.".

Tôi đang chạy HĐH Windows 7 và đã tải xuống JDK mới nhất và cảm thấy có thể tôi đã vô tình xóa java khỏi máy như trước khi tôi có thể kiểm tra phiên bản Java bằng lệnh "java -version".

Tôi phải tải xuống phần mềm nào để Java hoạt động trở lại trên máy của mình?

BIÊN TẬP:

Tôi đã quản lý để có được Java chạy lại từ cmd của mình sau khi đảm bảo tất cả các biến môi trường được trỏ đến SDK Java hiện tại. Cảm ơn bạn cho tất cả các câu trả lời cho câu hỏi của tôi.

Karen

Câu trả lời:


200

Bạn cần cấu hình các biến môi trường của bạn, JAVA_HOMEPATH.

JAVA_HOMEphải chứa đường dẫn đến java và bạn nên thêm % JAVA_HOME% \ bin vàoPATH

Ngoài ra, bạn có thể chỉ cần thêm vào PATHtoàn bộ đường dẫn của mình vào thư mục bin, không có JAVA_HOMEbiến, tuy nhiên, điều này gây khó chịu hơn một chút khi bạn cần có nhiều hơn một phiên bản java trên máy của mình (theo cách đó bạn chỉ cần thay đổi JAVA_HOMEvà thậm chí không bận tâm đến PATH)


trong trường hợp của tôi, tôi đã cài đặt jdk 7 và nó hoạt động tốt cho đến khi tôi cập nhật lên phiên bản jdk 8 mới hơn, giải pháp là gỡ cài đặt phiên bản cũ của jdk
moein rahimi

1
Nó hoạt động với tôi sau khi xóa JAVA_HOME và đặt toàn bộ đường dẫn đến thư mục java bin vào biến đầu tiên của biến Path
Mohammad Heydari

Tôi đã có một PATHbiến. Tôi có thể thay đổi nội dung mà không làm hỏng bất cứ điều gì khác không?
Liggliluff

nhớ thêm BOTH biến "JAVA_HOME" và sau đó "PATH", cả hai đều viết hoa
Marco Ottina

Vì một số lý do trong Windows 10, điều này sẽ không hoạt động. Đặt đường dẫn đầy đủ trong PATHbiến thay vì sử dụng %JAVA_HOME%. Kiểm tra câu trả lời này: stackoverflow.com/a/62590863/3337089
Nagabhushan SN

140

Đối với Windows 7:

  1. Nhấp chuột phải vào My Computer
  2. Lựa chọn Properties
  3. Lựa chọn Advanced System Settings
  4. Chọn Advancedtab
  5. Lựa chọn Environment Variables
  6. Chọn PathdướiSystem Variables
  7. Nhấn vào Editnút
  8. Trong trình chỉnh sửa giá trị biến, dán phần này vào đầu dòng

    C:\Program Files\Java\jdk1.7.0_72\bin;
  9. Nhấn Ok rồi Ok lần nữa

  10. Khởi động lại dấu nhắc lệnh nếu không nó sẽ không thấy sự thay đổi của biến đường dẫn
  11. java -versionvào dấu nhắc lệnh.


Lưu ý về Bước 8:
1. Phiên bản java trong này có thể khác với phiên bản được sử dụng ở đây - đây chỉ là một ví dụ.
2. Có thể sẽ có các giá trị khác trong biến đường dẫn. Điều thực sự quan trọng là bạn không xóa những gì đã có. Đó là lý do tại sao các hướng dẫn nói để dán giá trị đã cho ở đầu dòng - điều này có nghĩa là bạn không xóa giá trị hiện tại, bạn chỉ cần đặt java trước nó. Điều này cũng khắc phục mọi sự cố bạn gặp phải nếu một phiên bản java khác cũng xuất hiện.

Lưu ý ở Bước 6:
1. Điều này đặt đường dẫn cho máy tính, không dành cho người dùng cá nhân. Có thể là bạn đang làm việc trên máy tính mà các nhà phát triển khác cũng sử dụng, trong trường hợp đó, bạn muốn đặt các biến người dùng hơn là các biến hệ thống


6
"Dấu nhắc khởi động lại lệnh này nếu không nó sẽ không thấy sự thay đổi của biến đường dẫn"
Andrew Paes

1
không sử dụng ';' cho jdk 10
brainLoop

53

Có vẻ như bạn chưa thêm đúng thư mục vào đường dẫn của mình.

Trước tiên hãy tìm xem thư mục nào bạn đã cài đặt Java. Ví dụ: trên hộp của tôi, nó nằm trong C:\Program Files\java\jdk1.7.0_111 . Khi bạn đã tìm thấy nó, hãy thử chạy nó trực tiếp. Ví dụ:

c:\> "c:\Program Files\java\jdk1.7.0_11\bin\java" -version

Khi bạn chắc chắn đã có phiên bản phù hợp, hãy thêm binthư mục vào PATHbiến môi trường của bạn .

Lưu ý rằng bạn không cần một JAVA_HOMEbiến môi trường và không có thời gian. Một số công cụ có thể sử dụng nó - và nếu bạn đang sử dụng một trong số đó, thì chắc chắn, hãy đặt nó - nhưng nếu bạn chỉ sử dụng (nói) Eclipse và dòng lệnh java/ javaccông cụ, bạn sẽ không có nó.


1 Có, điều này đã nhắc nhở tôi rằng tôi cần cập nhật ...


@SotiriosDelimanolis: Cá nhân tôi không thể nhớ lần cuối cùng tôi cần nó. Một số công cụ có thể - nhưng tôi chỉ bắt đầu thay đổi môi trường khi tôi thực sự cần, thay vì chỉ là vấn đề tất nhiên. (Tôi sẽ chỉnh sửa câu trả lời của mình để chỉ ra điều đó.)
Jon Skeet

1
Cảm ơn bạn rất nhiều vì câu trả lời của bạn tuy nhiên sau khi thêm cả hai đường dẫn vào java trong cả hai biến môi trường "Đường dẫn" và "JAVA_HOME", tôi dường như vẫn nhận được cùng một lỗi.
Karen

2
@Karen: Bạn đã thử bước đầu tiên của tôi để chạy nó một cách rõ ràng chưa? Và bạn đã khởi động lại dấu nhắc lệnh của mình sau khi thay đổi các biến môi trường chưa?
Jon Skeet

Khi tôi chạy nghiêng c: \> "c: \ Program Files \ java \ jdk1.7.0_11 \ bin \ java" -version nghiêng nó nói "phiên bản java '1.7.0_11' Java <TM> SE Runtime Environment <build 1.7. 0_11-b21> Java HotSpot <TM> Máy khách VM <build 23.6-b04, chế độ hỗn hợp, chia sẻ>
Karen

Có, tôi đã khởi động lại cmd sau khi thay đổi các biến môi trường nhưng dường như không có thay đổi nào đáng tiếc.
Karen

48

Giả sử, Java / JDK được cài đặt vào thư mục: C: \ Program Files \ Java :

Đường dẫn cài đặt Java / JDK

Thực hiện theo các bước:

  1. Bảng điều khiển Goto → Hệ thống → Cài đặt hệ thống nâng cao → Nâng cao → Biến môi trường ( Win+ Pause/Breakcho Hệ thống trong Bảng điều khiển )
  2. Trong phần Biến hệ thống, nhấp vào New Mới
  3. Trong tên biến, viết:JAVA_HOME
  4. Trong Biến giá trị ghi : C:\Program Files\Java\bin, nhấn OK : Thêm JAVA_HOME
  5. Trong phần Biến hệ thống, nhấp đúp chuột vàoPath
  6. Nhấn New và viết C:\Program Files\Java\bin, nhấn OK : Thêm đường dẫn Java
  7. Trong cửa sổ biến môi trường, nhấn OK
  8. Khởi động lại / Chạy cmd.exevà viết java --version:: Phiên bản Java CMD

Yêu các mẹo (cửa sổ + Tạm dừng).
CodeFinity

Tôi vừa thử với cửa sổ 10. Lệnh java --versionkhông hoạt động nhưng java -versionhoạt động.
Steve

14

Tìm kiếm các biến môi trường. nhập mô tả hình ảnh ở đây

mở "chỉnh sửa các biến môi trường hệ thống". sau đó bấm vào "biến môi trường". nhập mô tả hình ảnh ở đây

Trong "Biến người dùng", nhấp vào "Đường dẫn" rồi "Chỉnh sửa". nhập mô tả hình ảnh ở đây

Tìm đường dẫn Java của bạn và nhấp vào "Chỉnh sửa". nhập mô tả hình ảnh ở đây

sau đó dán đường dẫn của thư mục cài đặt java của bạn. Chủ yếu bạn có thể tìm thấy nó trên một con đường tương tự như thế này. C: \ Tệp chương trình \ Java \ jdk-12.0.2 \ bin

Sau đó bấm OK. Bây giờ trong menu bắt đầu, gõ cmd. mở dấu nhắc lệnh. gõ java -version Nếu bạn đã làm đúng, nó sẽ hiển thị một cái gì đó như thế này. nhập mô tả hình ảnh ở đây


9

Đối với tôi, nó bắt đầu hoạt động sau khi đặt ,: khi bắt đầu đường dẫn biến hệ thống: -


nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây



6

Giải pháp của tôi là đặt cùng một giá trị (đường dẫn đến thư mục bin JDK) JAVA_HOMEPath

JAVA_HOME Con đường


1
Chào mừng đến với SO. Vui lòng thêm một số thông tin - ví dụ: những gì bạn thực sự đưa vào JAVA_HOMEPATHkhông tham khảo các câu trả lời khác.
Michael Lihs

5

Vấn đề này là trên Windows 8. Đầu tiên, sao chép Đường dẫn java jdk của bạn - ví dụ: C: \ Program Files \ Java \ jdk1.7.0_51 \ bin.

  1. Ngay trên Biểu tượng Máy tính của tôi trên Màn hình và Nhấp vào Thuộc tính.

  2. Chọn Settings Cài đặt hệ thống nâng cao 'trong khung bên trái.

  3. Trong tab 'Nâng cao', chọn 'Biến môi trường' ở dưới cùng.

  4. Trong Biến hệ thống, chọn Biến 'Đường dẫn' và chỉnh sửa nó.

Dán đường dẫn và thêm dấu ';' ở cuối - ví dụ: C: \ Chương trình tệp \ Java \ jdk1.7.0_51 \ bin;


2
Đảm bảo (;) ở cuối đường dẫn hiện tại trước khi bạn nối thêm.
Sanjeet A

3

Trong trường hợp của tôi, PATH đã được cài đặt đúng nhưng PATHEXT đã bị xóa do nhầm lẫn với phần mở rộng .exe. Đó là lý do tại sao cửa sổ không thể tìm thấy ứng dụng java hoặc bất cứ thứ gì .exe từ dấu nhắc lệnh. Hy vọng nó có thể giúp được ai đó.


1

Tôi đã từng gặp vấn đề tương tự. Chỉ cần cài đặt bit chính xác của java như máy tính của bạn. Nếu PC của bạn là 64 bit thì hãy cài đặt java 64 bit. Nếu là 32 bit thì ngược lại :)


1

Không chắc chắn tại sao, nhưng trong trường hợp của tôi, lý do là vì tôi đang chạy thiết bị đầu cuối Anaconda thay vì CMD.

Sau khi tôi sử dụng CMD và cập nhật các cài đặt đường dẫn như được đề cập bởi tất cả các ý kiến ​​trên vấn đề được giải quyết về phía tôi.


0

nếu bạn đã cài đặt Cygwin trong Windows Box hoặc sử dụng UNIX Shell

Issue bash#which java

Điều này sẽ cho bạn biết java có trong classpath của bạn hay KHÔNG.


0

Tôi đã sửa biến đường dẫn của mình nhưng dấu nhắc lệnh cần Khởi động lại nếu không, nó sẽ không thể xác minh thay đổi đối với biến đường dẫn. Có thể hữu ích cho một người như tôi. vì vậy " khởi động lại dấu nhắc lệnh "


0

Nếu bạn đã đặt các biến môi trường ( JAVA_HOMEPATH) dưới các biến người dùng, dấu nhắc lệnh (chạy với tư cách quản trị viên) sẽ không xác định java. Cho rằng bạn cần đặt các biến môi trường dưới các biến hệ thống.

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.