2017-03-20 37 views
5

Mam zestaw do serwera, który próbuję przetestować na JDK java9 (znaleziono here, używam 64-bitowej wersji systemu Linux), ale mam następujący błąd napotykając krótko po starcie:Jak dołączyć moduł java 9 w czasie wykonywania?

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) 

Zestaw serwera uruchamia się bez problemu podczas używania java8. W jakiś sposób muszę powiedzieć systemowi uruchomieniowemu, aby zawierał moduł javax.xml.bind, ale jestem nowy w java9 i nie wiem jak to zrobić, aby ponownie skompilować cały zestaw serwera do modułu i dodać zależność od modułu javax.xml.bind. Czy istnieje sposób na rozwiązanie tego błędu, który nie wymaga ponownej kompilacji zestawu serwerów do modułu?

+4

Czy możesz spróbować uruchomić z '--add-modules java.xml.bind'? – Nicolai

+1

@Nicolai Dzięki, że naprawiłem problem - jeśli otworzysz odpowiedź, zaakceptuję to –

Odpowiedz

8

Moduły Java EE są dostarczane z JDK, ale jednym z nich jest not resolved by default i java.xml.bind. W takich przypadkach należy je jawnie dołączyć do --add-modules.

W twoim przypadku uruchom z --add-modules java.xml.bind.