2017-10-20 40 views
9

tôi di chuyển một dự án maven trong Java 8 cho một dự án Java 9 mà không cần bất kỳ công cụ xây dựng trong Eclipse OxyGen 1a.Java 9: ​​Module java.xml.bind không thể truy cập trong Eclipse

Vì vậy, tôi module-info.java trông như thế này:

enter image description here

Nhưng java.xml.bind không thể truy cập, mặc dù nó trong đường dẫn mô-đun của tôi:

enter image description here

Vậy có gì sai ở đây?

+2

xem https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception-in-j/43574427?noredirect=1#comment80650142_43574427 –

+2

Mô-đun đó không được chấp nhận (https://docs.oracle.com/javase/9/docs/api/java.xml.bind-summary.html). Bạn sẽ cần phải JAXB như một thư viện bên ngoài. – VGR

+0

@VGR Nhưng nó có sẵn trong JDK9, vì vậy nó phải có sẵn trong Eclipse – ZhekaKozlov

Trả lời

11

Khi biên dịch một module giấu tên, java.xml.bind không thể truy cập bằng cách mặc định, nhưng trong một dự án mô-đun (như trong câu hỏi này) thất bại trong việc giải quyết tham chiếu đến mô-đun java.xml.bind a bug (xem chỉnh sửa dưới đây).

Để làm việc xung quanh này cho đến khi lỗi được cố định, bạn có thể rõ ràng bao gồm mô-đun java.xml.bind bằng cách click đúp vào Is modular (xem ảnh chụp màn hình trong câu hỏi), và trong hộp thoại cho thấy, di chuyển module mong muốn Available modules-Explicitly included modules :

Module properties dialog

Sửa: Bug 526054 đã được giải quyết trong Eclipse Oxygen.2, và do đó một dự án mô-đun nên không còn ne thay vào đó, hãy thực hiện các bước ở trên (mặc dù vẫn có liên quan đến mã trong mô-đun chưa đặt tên).

+0

Điều này đã giúp tôi rất nhiều, cảm ơn! – Ulathar

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