2012-05-16 82 views
7

Tôi đã tạo một ứng dụng trong JDK7, nhưng jre6 vẫn đang sử dụng trên thị trường và nếu tôi gửi tệp jar của mình cho ai đó với jre6, nó sẽ không hoạt động, có cách nào đó không ứng dụng kiểm tra phiên bản jre và nếu nó không tương thích thì hãy yêu cầu người dùng cập nhật ..cách kiểm tra phiên bản jre bằng ứng dụng java

+0

Đây là [link] (http://stackoverflow.com/questions/198431/how-do-you-compare-two-version-strings-in-java) cách so sánh phiên bản JRE. – Crazenezz

+0

@Crazenezz: là có một cách bằng cách kiểm tra thông qua dos, bằng cách tạo ra một tập tin batch cửa sổ và cơ bản ảo, điều này có thể được thực hiện? nếu nó phù hợp thì nó sẽ thực hiện bình ?? điều này có thể được thực hiện thực hiện wt tôi đang nói ?? – rahul

+0

Có khả năng thực hiện điều đó theo lô. Bạn có thể chuyển đổi thuật toán trong liên kết mà tôi đưa ra ở trên và dịch nó theo kiểu lập trình hàng loạt (Nếu bạn cảm thấy thoải mái khi sử dụng). – Crazenezz

Trả lời

9

Bạn có thể sử dụng phương pháp System.getProperty(String key); với "java.version" làm khóa.

String version = System.getProperty("java.version"); 

đầu ra Ví dụ:

1.6.0_30 

Các phím có sẵn có thể tìm thấy tại here.

+0

sẽ hoạt động nếu jre không khớp ... nguyên nhân trong trường hợp của tôi tệp jre chỉ cung cấp cho màn hình giật gân và đóng chính nó nếu tôi sử dụng jre6 .. tôi cần một số giải pháp bằng chứng ngu ngốc !! – rahul

+0

bạn có thể đăng ngoại lệ rằng nó đang hiển thị –

+0

không hiển thị bất kỳ ngoại lệ nào ... chương trình không chạy ... tôi đã tạo ra một hộp thoại lỗi ngoại lệ .....nhưng không có gì hoạt động .. – rahul

2
System.getProperty("java.version") 

Note: Nó sẽ trở lại phiên bản hiện tại JVM của, JVM mà trên đó mã này được thực hiện, Nếu bạn có java6 & java7 được cài đặt trên máy tính của bạn và bạn đang chạy này mã trên java 7 nó sẽ hiển thị cho bạn phiên bản 7

+0

sẽ làm việc nếu jre là không phù hợp ... gây ra trong trường hợp của tôi tập tin jre chỉ cho màn hình giật gân và đóng chính nó nếu tôi sử dụng jre6 .. tôi cần một số giải pháp bằng chứng fool !! – rahul

+0

bạn có thể cho chúng tôi biết ngoại lệ khi nó đóng không? –

+0

của nó không đưa ra bất kỳ ngoại lệ .... nó chỉ không chạy ... tôi đã thực hiện một hộp thoại báo lỗi trong trường hợp của bất kỳ ngoại lệ .... vì vậy tôi havent hiển thị bất cứ điều gì .... – rahul

0

đây là số example kiểm tra phiên bản và phát hành ngoại lệ nếu phiên bản nằm trong đúng bằng cách sử dụng System.getProperty("java.version");

+0

sẽ làm việc nếu jre là không phù hợp ... gây ra trong trường hợp của tôi tập tin jre chỉ cho màn hình giật gân và đóng chính nó nếu tôi sử dụng jre6 .. tôi cần một số giải pháp bằng chứng fool !! – rahul

+0

Tôi không thể xác minh nó atm nhưng nếu bạn đặt này trong một lớp học được nạp trước khi bất kỳ lớp jre7 cụ thể được nạp nó sẽ làm việc – Sibster

0

Sử dụng Java Web Bắt đầu bạn có một hộp thông báo về phiên bản java nếu nó không tương thích với bình của bạn. Ví dụ:

<resources> 
     <j2se version="1.4+" 
      href="http://java.sun.com/products/autodl/j2se" /> 

trong file jnlp

2
static public void main(String[] arg) throws IOException 
    { 
     PrintStream out = System.out; 
     Properties pro = System.getProperties(); 
     Set set = pro.entrySet(); 

     Iterator<Map.Entry<String , String >> itr = set.iterator(); 
     while(itr.hasNext()) 
     { 
      Map.Entry ent = itr.next(); 
      out.println(ent.getKey() + " -> " + ent.getValue() + "\n"); 
     } 
} 

Sử dụng System.getProperty("java.version") hoặc System.getProperty("java.runtime.version") để cài đặt phiên bản của java.
Đoạn mã trên sẽ giúp bạn tìm hiểu thêm chi tiết như tên nhà cung cấp java, Hệ điều hành, vv ..

0

UnsupportedClassVersionXảy ra nếu bạn cố gắng chạy tệp Java trên phiên bản cũ hơn so với phiên bản trên đó biên soạn.

java.lang.UnsupportedClassVersionError: Số phiên bản không hợp lệ trong tệp .class [tại java.lang.ClassLoader.defineClass1 (Phương pháp gốc)] khi chạy tệp lớp java đã biên dịch.

Thực chất bạn không thể chạy tệp lớp được biên dịch bằng phiên bản mới hơn JVM.

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