Tôi đang sử dụng kiến 1.8.0 và java 1.6.0.17 và tôi đang gặp sự cố lạ.lỗi kiến Không thể đổi tên tệp cũ thành tệp tạm thời
Trong build.xml tôi, tôi có một nhiệm vụ đơn giản mà biên dịch mã
<javac destdir="${dir.build.classes}" debug="on">
<classpath refid="classpath"/>
<src path="${dir.src.java}"/>
</javac>
Trong "classpath" là một jar, gọi nó là library.jar
Trong một nhiệm vụ sau, tôi cần phải thêm một vài lớp học để library.jar
, mà tôi làm như thế này
<jar destfile="library.jar" update="true" duplicate="fail">
<fileset dir="${dir.build.classes}">
<include name="some/class/files"/>
</fileset>
</jar>
này sẽ thất bại với lỗi Unable to rename old file (library.jar) to temporary file
Tôi bị kẹt trong một cuộc gọi đến handle.exe trước và sau cuộc gọi javac, và tôi có thể xác nhận rằng quá trình java chạy ant lấy một tập tin xử lý để library.jar trong cuộc gọi javac, và nó không cho nó lên. Điều này gây ra nỗ lực sau này của tôi để cập nhật các jar để thất bại.
Tại sao kiến sẽ giữ tay cầm vào bình trong đường dẫn lớp mở ngay cả sau khi tác vụ javac hoàn tất?
Bạn có thể giải thích ý bạn bằng cách "đặt rõ ràng classpath của nhiệm vụ javac" không? Đó là một bộ khá lớn các lọ được sử dụng ở một số nơi khác, vì vậy mã hóa cứng chúng không thực sự là một lựa chọn, và tôi không chắc tại sao nó lại tạo nên sự khác biệt. – karoberts