2017-03-20 16 views
5

Tôi có một bộ máy chủ mà tôi đang cố gắng để thử nghiệm trên JDK java9 (tìm thấy here, Tôi đang sử dụng phiên bản Linux 64-bit), tuy nhiên tôi đang gặp phải các lỗi sau một thời gian ngắn sau khi khởi động:Làm cách nào để bao gồm mô-đun java 9 vào thời gian chạy?

java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 

Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException 
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:533) 
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:186) 
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:476) 

Bộ máy chủ bắt đầu không có vấn đề khi sử dụng java8. Bằng cách nào đó tôi cần phải nói với hệ thống thời gian chạy để bao gồm các mô-đun javax.xml.bind, tuy nhiên tôi mới đến java9 và không biết làm thế nào để làm điều này ngắn biên dịch lại toàn bộ bộ máy chủ thành một mô-đun và thêm một phụ thuộc vào mô-đun javax.xml.bind. Có cách nào để giải quyết lỗi này mà không yêu cầu tôi phải biên dịch lại bộ máy chủ thành một mô-đun?

+4

Bạn có thể thử chạy với '--add-modules java.xml.bind' không? – Nicolai

+1

@Nicolai Cảm ơn bạn đã khắc phục sự cố - nếu bạn mở câu trả lời, tôi sẽ chấp nhận nó –

Trả lời

8

Mô-đun Java EE được vận chuyển với JDK nhưng not resolved by defaultjava.xml.bind là một trong số chúng. Trong những trường hợp như vậy, chúng cần được bao gồm một cách rõ ràng với --add-modules.

Trong trường hợp của bạn, hãy khởi chạy với --add-modules java.xml.bind.

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