2009-10-14 41 views
6

Hệ điều hành: Windows XPTại sao java -version trả về phiên bản cũ?

Tôi đang sử dụng yuicompressor-2.4.2 để nén một số CSS trước khi tải lên máy chủ của tôi. Nhưng khi tôi chạy, ngoại lệ sau sẽ xuất hiện:

Exception in thread "main" java.lang.UnsupportedClassVersionError: 
com/yahoo/platform/yui/compressor/Bootstrap (Unsupported major.minor version 48.0)

Vì vậy, tôi nghĩ đó là vì JRE. Lệnh tôi nhập vào cmd: java -version

Và nó nói: phiên bản java "1.3.1_01" nhưng phải nói "1.6.0_16" vì tôi đã cài đặt phiên bản mới nhất.

Tôi nên làm gì để làm cho Java sử dụng phiên bản mới nhất thay vì phiên bản cũ?

+1

Bạn có thể đăng đầu ra của 'echo% path%' không? –

+0

Bạn đã cài đặt ít nhất 2 phiên bản java. Loại bỏ các phiên bản không mong muốn. Đảm bảo $ PATH chỉ chứa phiên bản ưa thích của bạn. – jackrabbit

Trả lời

11

Đặt biến môi trường JAVA_HOME trỏ đến thư mục nơi bạn có jdk 1.6.0

set JAVA_HOME=your_path_to_jdk1.6 
set PATH=%JAVA_HOME%/bin;.;..;%PATH% 

Đó là từ một cửa sổ lệnh. Ngoài ra bạn có thể làm điều đó từ "máy tính của tôi> Properties> Advanced> Biến môi trường"

+0

Cảm ơn bạn đã làm việc. =) Nhưng tôi vẫn không biết làm thế nào khi tôi cập nhật java nó đã không thay đổi phiên bản tự động: S –

+1

Nó có thể làm việc, nhưng tôi nghĩ rằng đó là một kludge. Bạn không cần phải gây rối với đường dẫn nếu hệ thống của bạn được thiết lập chính xác. – erickson

1

Thêm% JAVA_HOME%/bin để biến môi trường PATH của bạn, nơi JAVA_HOME được thiết lập để thư mục JRE6u16 bạn

0

Bạn nên kiểm tra môi trường PATH của bạn biến. Có thể một số ứng dụng bạn đã cài đặt đã đặt phiên bản jre của nó trước mặt bạn trong đường dẫn.

2

Bạn nên sửa đổi biến môi trường PATH của bạn:

PC của tôi> Nhấp chuột phải> properties> Advanced> Biến môi trường

Và sửa đổi "Path"

Nối ở cuối đường dẫn đến 1.6 của bạn cài đặt:

;C:\jdk1.6.xxx\bin 

và xóa phần trước nếu có.

0

Dường như các phiên bản Java cũ vẫn còn nằm trên các biến môi trường hệ thống PATH (trong đó hệ điều hành sẽ tìm kiếm lệnh) hoặc JAVA_HOME (nơi yuicompressor có thể tìm kiếm java thực thi)

Làm thế nào các biến được thay đổi phụ thuộc vào hệ điều hành của bạn.

6

Trên Windows, JRE cài đặt một tệp thực thi java trong thư mục Windows, đây sẽ là java đầu tiên trong đường dẫn của bạn. Đây chỉ là một trình bao bọc trong Windows Registry để tìm thư mục nhà Java (nên là "% SystemDrive% \ Program Files \ Java \ jre6" cho Java 6) và chạy bằng các thư viện ở đó.

Chạy% SystemRoot% \ system32 \ java -version và xem những gì bạn nhận được. Nếu số Java 6, bạn có các mục nhập trong đường dẫn của mình trước% SystemRoot% \ system32 (thực sự phải là đầu tiên). Hãy sửa biến% PATH% của bạn hoặc bạn sẽ phải rõ ràng bất cứ khi nào bạn muốn chạy phiên bản Java này.

Nếu chạy phiên bản java không báo cáo Java 6, chưa được cài đặt (chính xác). Gỡ cài đặt và thử cài đặt lại.

Nếu bạn gặp sự cố vì PATH, đó là vì bạn hoặc một số phần mềm bạn đã cài đặt với nó; Tôi khuyên bạn nên sử dụng mặc định để có system32 trước. Mọi thứ hoạt động tốt nếu mặc định được sử dụng.

Ngoài ra,% JAVA_HOME% không được sử dụng bởi chính JRE . Một số ứng dụng Java phổ biến như tomcat và ant tôn trọng cài đặt% JAVA_HOME%, vì vậy có lẽ yuicompressor cũng vậy. Nhưng đây là một quy ước thực tế, không phải là một tiêu chuẩn.

+1

Mẹo tuyệt vời !! Tôi chưa bao giờ nghĩ về điều này chút nào. Tôi đã thêm vào con đường của tôi nhưng cuối cùng. Ngay sau khi tôi điều chỉnh các đơn đặt hàng, nó đã giải quyết vấn đề ngay lập tức. Cảm ơn :) –

4

Vào thư mục system32 C: \ Windows \ System32 và xóa sau 3 file

  • java.exe
  • javaw.exe
  • javaws.exe

Bây giờ, tạo một Biến môi trường JAVA_HOME với giá trị = {đường dẫn gốc của cài đặt jdk của bạn} và thêm đường dẫn đến thư mục bin của jdk của bạn trong biến môi trường PATH.

Mở lời nhắc lệnh mới và chạy java -version để xác nhận thay đổi

+0

giải quyết vấn đề của tôi Cảm ơn – user2045810

+0

điều này cũng có thể trong thư mục này 'C: \ ProgramData \ Oracle \ Java \ javapath' bạn cần xóa chúng –

Các vấn đề liên quan