2011-08-31 26 views
10

Làm cách nào để thiết lập đường dẫn khởi động kiến ​​cùng với nguồn 1,5-mục tiêu 1.5?Đặt ant bootclasspath: JDK 1.7 có cảnh báo javac mới để thiết lập nguồn cũ hơn mà không cần bootclasspath

Làm cách nào để không phải là đường dẫn được mã hóa cứng đến 1,5 JDK? Tôi có thể thiết lập một biến môi trường để bootclasspath tương tự như cách JAVA_HOME có thể được sử dụng từ ant?

Lý tưởng nhất là tôi muốn làm điều gì đó như đặt biến môi trường hoặc chuyển đối số cho kiến.

+0

Thực ra, bạn chỉ cần rt.jar của 1,5 JRE chứ không phải JDK đầy đủ , Tôi nghĩ. –

Trả lời

14

Đây là minh họa về cách bạn có thể tìm nạp vị trí lớp khởi động Java 5 từ một biến môi trường, sau đó sử dụng nó.

Trước tiên, đặt biến môi trường - nói JAVA5_BOOTCLASSES. property task cung cấp cho bạn quyền truy cập vào môi trường, sau đó đối số bootclasspath của số javac task chuyển cài đặt tới trình biên dịch.

<property environment="env" /> 
<property name="java5.boot.classpath" value="${env.JAVA5_BOOTCLASSES}" /> 

<javac source="1.5" target="1.5" 
     bootclasspath="${java5.boot.classpath}" 
     ... 
/> 

Lưu ý rằng nếu biến môi trường không được đặt, Ant sẽ bỏ qua và tiến hành không - vì vậy trình biên dịch sẽ quay trở lại đường dẫn khởi động mặc định.

Tùy chọn khác, nếu thích hợp, là switch off the warnings và không bận tâm đến đường dẫn khởi động. Một cái gì đó như

<javac srcdir= ... > 
    <compilerarg arg="-Xlint:-options" /> 
</javac> 

Nhưng điều đó có thể khiến bạn gặp một số lỗi tinh tế.

+0

Bạn có thể muốn thêm thuộc tính thực thi trong tác vụ javac để trỏ đến JDK1.7 thực thi để làm cho nó rõ ràng hơn –

2

Cần lưu ý rằng biến số JAVA5_BOOTCLASSES phải chứa tất cả các thư viện cần thiết không chỉ rt.jar. Trong trường hợp của tôi, nó cũng là jce.jar Vì vậy, bạn nên đặt biến này bằng cách sử dụng đoạn mã đơn giản này khi trong môi trường * nix:

export JAVA5_BOOTCLASSES="" 
for i in /usr/lib/jvm/java/jre/lib/*.jar; do 
    export JAVA5_BOOTCLASSES=$JAVA5_BOOTCLASSES:$i 
done 
Các vấn đề liên quan