JAXB API ජාවා ඊඊ ඒපීඅයි ලෙස සලකනු ලබන අතර එබැවින් ජාවා එස්ඊ 9 හි සුපුරුදු පන්ති පථයේ තවදුරටත් අඩංගු නොවේ. ජාවා 11 හි ඒවා ජේඩීකේ වෙතින් සම්පූර්ණයෙන්ම ඉවත් කරනු ලැබේ.
ජාවා 9 මොඩියුලවල සංකල්ප හඳුන්වා දෙන අතර පෙරනිමියෙන් java.se
සමස්ත මොඩියුලය පන්තියේ මාවතේ ඇත (හෝ ඒ වෙනුවට මොඩියුල-මාර්ගය). නමට අනුව, සම්ප්රදායිකව ජාවා 6/7/8 සමඟ බැඳී ඇති ජාවා ඊඊ ඒපීඅයි java.se
සමස්ත මොඩියුලයට ඇතුළත් නොවේ .
වාසනාවකට මෙන්, JDK 6/7/8 හි සපයා ඇති මෙම ජාවා ඊඊ ඒපීඅයි තවමත් ජේඩීකේ තුළ ඇත, නමුත් ඒවා පෙරනිමියෙන් පන්ති මාවතේ නොමැත. අමතර ජාවා ඊඊ ඒපීඅයි පහත දැක්වෙන මොඩියුලවල දක්වා ඇත:
java.activation
java.corba
java.transaction
java.xml.bind << This one contains the JAXB APIs
java.xml.ws
java.xml.ws.annotation
ඉක්මන් හා අපිරිසිදු විසඳුම: (JDK 9/10 පමණි)
JAXB API ක්රියාත්මක වන වේලාවේදී ලබා ගැනීමට, පහත දැක්වෙන විධාන රේඛා විකල්පය සඳහන් කරන්න:
--add-modules java.xml.bind
නමුත් මට තවමත් ජාවා 8 සමඟ වැඩ කිරීමට මෙය අවශ්යයි !!!
ඔබ --add-modules
පැරණි JDK සමඟ සඳහන් කිරීමට උත්සාහ කළහොත් , එය හඳුනා නොගත් විකල්පයක් නිසා එය පුපුරා යනු ඇත. විකල්ප දෙකෙන් එකක් මම යෝජනා කරමි:
JDK_JAVA_OPTIONS
පරිසර විචල්යය භාවිතා කර ඔබට ඕනෑම ජාවා 9+ පමණක් විකල්පයන් සැකසිය හැකිය . මෙම පරිසර විචල්යය ජාවා 9+ සඳහා දියත් කරන්නා විසින් ස්වයංක්රීයව කියවනු ලැබේ java
.
-XX:+IgnoreUnrecognizedVMOptions
ජේවීඑම් පුපුරවා හැරීම වෙනුවට හඳුනා නොගත් විකල්ප නිහ ly ව නොසලකා හැරීමට ඔබට එකතු කළ හැකිය . නමුත් පරෙස්සම් වන්න! ඔබ භාවිතා කරන වෙනත් විධාන රේඛා තර්ක තවදුරටත් JVM විසින් වලංගු නොවේ. මෙම විකල්පය Oracle / OpenJDK මෙන්ම IBM JDK (JDK 8sr4 අනුව) සමඟ ක්රියා කරයි.
විකල්ප ඉක්මන් විසඳුම: (JDK 9/10 පමණි)
--add-modules java.se.ee
විකල්පය සඳහන් කිරීමෙන් ඔබට ඉහත සියලුම ජාවා ඊඊ මොඩියුලයන් ධාවන වේලාවේදී ලබා ගත හැකි බව සලකන්න . මෙම java.se.ee
මොඩියුලය ඇතුළත් වී තිබෙන බව සමස්ත ලය java.se.ee
මෙන්ම ජාවා EE API මොඩියුල ඉහත. සටහන, මෙය ජාවා 11 හි ක්රියා නොකරන්නේ ජාවා 11java.se.ee
හි ඉවත් කළ බැවිනි .
නිසි දිගුකාලීන විසඳුම: (JDK 9 සහ ඉන් ඔබ්බට)
ඉහත ලැයිස්තුගත කර ඇති ජාවා ඊඊ ඒපීඅයි මොඩියුල සියල්ලම සලකුණු කර @Deprecated(forRemoval=true)
ඇත්තේ ඒවා ජාවා 11 හි ඉවත් කිරීමට සැලසුම් කර ඇති බැවිනි . එබැවින් ප්රවේශය තවදුරටත් ජාවා 11 හි ක්රියාත්මක නොවනු ඇත.--add-module
ඔබට ජාවා 11 සහ ඉදිරියට කළ යුතු වන්නේ පංතියේ හෝ මොඩියුලයේ මාර්ගයේ ජාවා ඊඊ ඒපීඅයි වල පිටපතක් ඇතුළත් කිරීමයි. උදාහරණයක් ලෙස, ඔබට මේ වගේ මාවන් පරායත්තතාවයක් ලෙස JAX-B API එකතු කළ හැකිය:
<!-- API, java.xml.bind module -->
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.2</version>
</dependency>
<!-- Runtime, com.sun.xml.bind module -->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.2</version>
</dependency>
JAXB පිළිබඳ වැඩි විස්තර සඳහා JAXB යොමු ක්රියාත්මක කිරීමේ පිටුව බලන්න .
ජාවා මොඩියුලරිටි පිළිබඳ සම්පූර්ණ විස්තර සඳහා, JEP 261: මොඩියුල පද්ධතිය බලන්න
Gradle හෝ Android Studio සංවර්ධකයා සඳහා: (JDK 9 සහ ඉන් ඔබ්බට)
ඔබගේ build.gradle
ගොනුවට පහත පරායත්තතා එක් කරන්න :
dependencies {
// JAX-B dependencies for JDK 9+
implementation "jakarta.xml.bind:jakarta.xml.bind-api:2.3.2"
implementation "org.glassfish.jaxb:jaxb-runtime:2.3.2"
}