2013-08-14 31 views
13

Làm thế nào tôi có thể lấy thông tin nhà cung cấp Java mà không cần phải biên dịch và chạy kịch bản sau đây:Làm thế nào để lấy Java thông tin nhà cung cấp

import java.util.Properties; 
public class test 
{ 
    public static void main(String args[]) 
    { 
      Properties prop = System.getProperties(); 
      System.out.println ("JVM Vendor : " + prop.getProperty("java.vendor")); 
    } 
} 

tôi không thể tìm thấy nó trong các tùy chọn dòng lệnh.

Trả lời

24

Lưu ý: Sau đây sẽ làm việc cho Oracle JVM - không thử nghiệm trên những người khác. (Để biết chi tiết về các tùy chọn không chuẩn thực thi java -X)

Bạn có thể sử dụng cờ phi tiêu chuẩn -XshowSettings để hiển thị tất cả cài đặt hoặc cách khác -XshowSettings:properties để hiển thị tất cả cài đặt thuộc tính.

Vì vậy, ví dụ nếu bạn thực hiện lệnh sau:

java -XshowSettings:properties -version 

này sẽ cho bạn thấy tất cả các thuộc tính một trong số đó là java.vendor. Không chắc chắn nếu nó có thể để có được nó để sản lượng chỉ là một tài sản duy nhất mặc dù.

+2

Lỗi sau là bắt đầu: Tùy chọn không được công nhận: -XshowSettings: các thuộc tính Không thể tạo máy ảo Java. –

+0

Lệnh này có dành cho Windows hoặc Unix không? –

+0

Tôi thường chạy trên Linux, nhưng đã thử nó trên một máy Windows và nó hoạt động cũng như ở đó. Các thiết lập là: Ubuntu 12: Oracle Java 1.7.0_17. Windows 7: Oracle Java 1.7.0_25. Chạy 'java -X' sẽ cung cấp cho bạn chi tiết về các tùy chọn không chuẩn, trong đó' -XshowSettings' được liệt kê, ít nhất là đối với phiên bản Java từ Oracle. – DB5

2

Nếu nó JDK chạy jvisualvm, mở ứng dụng VisualVM, đi đến "tính hệ thống" tab

+1

Tôi cần điều khiển cách để làm điều đó không may. – J33nn

2

Nếu bạn có bất kỳ chạy java ứng dụng 'jinfo' là bạn của bạn:

Usage: 
jinfo [option] <pid> 
    (to connect to running process) 
jinfo [option] <executable <core> 
    (to connect to a core file) 
jinfo [option] [[email protected]]<remote server IP or hostname> 
    (to connect to remote debug server) 

where <option> is one of: 
-flag <name>   to print the value of the named VM flag 
-flag [+|-]<name> to enable or disable the named VM flag 
-flag <name>=<value> to set the named VM flag to the given value 
-flags    to print VM flags 
-sysprops   to print Java system properties 
<no option>   to print both of the above 
-h | -help   to print this help message 

Vì vậy

jinfo -sysprops <pid of javaprocess> | grep "java.vendor = " 

mang đến cho bạn tài sản của hệ thống.

Beware:

Cũng lưu ý rằng giá trị của thuộc tính hệ thống có thể được ghi đè! Ví dụ, nếu myProperties.txt chứa các dòng sau, tài sản hệ thống java.vendor sẽ được ghi đè:

java.vendor = Acme Công ty Phần mềm

+0

TBH không có khả năng tài sản này sẽ bị thay đổi trong trường hợp của tôi :) – J33nn

0

nếu nó Tomcat goto: TOMCAT_HOME/bin/

rồi thực thi tệp version.sh (* ví dụ: /version.sh).

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