2012-01-15 13 views
10

tôi là tạo ra một chương trình hình ảnh watermarking trong java và tôi nhập khẩu các nội dung sau:Tôi cần thư viện nào để tôi có thể truy cập com.sun.image.codec.jpeg này trong Java?

import com.sun.image.codec.jpeg.JPEGCodec; 
import com.sun.image.codec.jpeg.JPEGEncodeParam; 
import com.sun.image.codec.jpeg.JPEGImageEncoder; 

nhưng tôi nhận được một lỗi mà nói: hạn chế

truy cập: Loại JPEGCodec không accesible do hạn chế đối với thư viện bắt buộc C:\Program Files\Java\jre6\lib\rt.jar

Có ai biết cách để giải quyết vấn đề này hoặc tôi nên thêm thư viện nào để truy cập thư viện và nơi tôi tìm thấy thư viện đó?

+0

Xem http: // stackoverflow. com/questions/1906673/import-com-sun-image-codec-jpeg – skaffman

Trả lời

11

Hãy xem ở đây Link

1. Open project properties. 
2. Select Java Build Path node. 
3. Select Libraries tab. 
4. Remove JRE System Library. 
5. Add Library JRE System Library. 

Như Milad gợi ý

Mặc dù đây SẼ làm việc, điều này đi ngược lại tất cả chính sách Java Runtime khuyến khích. Cách tốt nhất là tránh sử dụng rt.jar (hoặc bất kỳ thư viện thời gian chạy do Sun cung cấp nào khác cho vấn đề đó, như tools.jar)

+1

Mặc dù điều này S work làm việc, điều này đi ngược lại tất cả các chính sách Java Runtime được đề xuất. Cách tốt nhất là tránh sử dụng rt.jar (hoặc bất kỳ thư viện thời gian chạy do Sun cung cấp nào khác cho vấn đề đó, chẳng hạn như các công cụ.jar) –

+0

i bao gồm bình luận của bạn trong câu trả lời của tôi – RanRag

+0

:) Tôi chỉ muốn đảm bảo rằng các câu trả lời được đưa ra là toàn diện. Xin lỗi nếu tôi có vẻ ngạo mạn hay bất cứ điều gì. –

3

Đây là trong rt.jar, tệp jar được JVM sử dụng làm cơ sở thời gian chạy và tôi khuyên bạn không nên thêm nó làm phụ thuộc vào dự án của bạn.

Xem lý do tại sao here.

Cách chính xác để thực hiện những gì bạn muốn làm được mô tả here.

+0

Vì vậy, tôi nên thêm rt.jar làm jar bên ngoài vào đường dẫn xây dựng của mình? – adrian

+0

Vâng, bạn sẽ được, mặc dù tôi vẫn khuyên bạn chống lại nó. –

2

Vấn đề là bạn đang nhập thư viện từ gói sun.com.*. Oracle actually discourages việc sử dụng các gói này vì chúng có thể bị xóa trong các bản phát hành trong tương lai hoặc có thể không có sẵn trong tất cả các triển khai JVM. Có thể là IDE của bạn (bạn đang sử dụng cái nào?) Được định cấu hình để tạo lỗi nếu bạn cố gắng nhập các thư viện sun.com.*, trong trường hợp đó, thay đổi cấu hình sẽ cho phép bạn sử dụng các thư viện đó, nhưng sẽ không một ý tưởng hay. Bạn nên tìm các lựa chọn thay thế khác cho chức năng bạn tìm kiếm, sử dụng các thư viện không có giới hạn truy cập.

Ngoài ra, nếu những gì bạn muốn chỉ đơn giản là đọc hoặc ghi tệp JPEG, hãy xem lớp ImageIO, có rất nhiều phương pháp hữu ích trong đó.

0

Có lẽ thư viện hệ thống jre của bạn là 1,8

hay nhật thực: trình biên dịch Project Properties> java> lỗi/cảnh báo> Không dùng nữa API

thay đổi Lỗi phớt lờ/cảnh báo

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