Java.lang.UnsupportedClassVersionError නිවැරදි කරන්නේ කෙසේද: සහාය නොදක්වන major.minor අනුවාදය


1579

මගේ සියලු මෙවලම් සංස්කරණය, ධාවනය, සම්පාදනය ආදිය ලෙස නොට්පෑඩ් ++ භාවිතා කිරීමට මම උත්සාහ කරමි .

මම JRE ස්ථාපනය කර ඇති අතර, මගේ මාර්ග විචල්‍යය .../binනාමාවලිය වෙත සකසා ඇත.

මම මගේ "හෙලෝ වර්ල්ඩ්" නොට්පෑඩ් ++ හි ධාවනය කරන විට, මට මෙම පණිවිඩය ලැබේ:

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................

මම හිතන්නේ මෙහි ගැටලුව අනුවාදයන් ගැන ය; ජාවා හි සමහර සංස්කරණ පැරණි හෝ අළුත් ඒවා විය හැකිය.

  1. මම එය නිවැරදි කරන්නේ කෙසේද?
  2. මම JDK ස්ථාපනය කර JRE වෙනුවට මගේ මාර්ග විචල්‍යය JDK වෙත සැකසිය යුතුද?
  3. PATHJRE හෝ JDK හි විචල්‍යය අතර වෙනස කුමක්ද?

ඔබ jdk ද ස්ථාපනය කළාද? jre යනු Java RunTime පරිසරය, java යෙදුම් නිර්මාණය කිරීම සඳහා ඔබට jdk ද අවශ්‍ය වේ
CyprUS

ඔව් මම කළා, දැන් මගේ මාර්ග විචල්‍යය jdk ඇති තැනට යොමු කරයි. තවමත් මට මෙම "සහාය නොදක්වන සුළු අනුවාදය 51.0" දෝෂය ඇත, මම සිතන්නේ මම පැරණි අනුවාදය jdk ස්ථාපනය කළ යුතු බවයි. im භාවිතා කරන්නේ jdk 1.7.0
ERJAN

20
මේ දිනවල ඕඑස්එක්ස් හි ඇති අමුතු ඇපල් ජාවා 6 සහ ඔරකල් ජාවා 7 තත්ත්වය හේතුවෙන් මට මැක් ඕඑස් එක්ස් හි මෙය සිදුවිය. කෙටි අනුවාදය: JDK7 සමඟ සම්පාදනය කරන්න, JDK6 සමඟ ධාවනය කරන්න, මෙය ලබා ගන්න.
වොරන් පී

7
ජාවා හි පංතියේ නම කැපිටල් අකුරින් ආරම්භ කළ යුතුය;)
අෂිෂ් පැනරි

5
එල් කැප්ටන් සඳහා, මෙම පිළිතුර මා වෙනුවෙන් එය සවි කර ඇත: stackoverflow.com/a/34201991/1615594
tsuz

Answers:


1949

පෙන්වා ඇති අනුවාද අංකය JRE හි අනුවාදය විස්තර කරයි පන්ති ගොනුව අනුකූල වේ.

වාර්තා වූ ප්‍රධාන සංඛ්‍යා:

Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(මුලාශ්‍රය: විකිපීඩියා )

සත්‍ය ගැටළුව නිරාකරණය කිරීම සඳහා ඔබ ජාවා කේතය ජාවා ජේආර්ඊ හි නවතම අනුවාදයක් සමඟ ධාවනය කිරීමට උත්සාහ කළ යුතුය. නැතහොත් ජාවා සම්පාදකයාට ඉලක්ක පරාමිතිය නියම කළ යුතුය.

උදාහරණයක් ලෙස, ජාවා 1.4 සමඟ අනුකූල පංති ගොනු ජනනය කිරීම සඳහා, පහත දැක්වෙන විධාන රේඛාව භාවිතා කරන්න:

javac -target 1.4 HelloWorld.java

ජාවා සම්පාදකයාගේ නවතම අනුවාදයන් සමඟ ඔබට බූට්ස්ට්‍රැප් පන්තියේ මාර්ගය සකසා නොමැති බවට අනතුරු ඇඟවීමක් ලැබෙනු ඇත. මෙම දෝෂය පිළිබඳ වැඩි විස්තර බ්ලොග් සටහනකින් ලබා ගත හැකිය. පැරණි ප්‍රභවයක් බූට් ක්ලාස්පාත් නොමැතිව සැකසීමට නව ජාවාක් අනතුරු ඇඟවීම .


167
"පෙන්වා ඇති අනුවාද අංකය කේතය සම්පාදනය කිරීම සඳහා ජාවා භාවිතා කළේ නම් කුමන අනුවාදය විස්තර කරයි." නැත. පංති ගොනුව අනුකූල වන JRE හි අනුවාදය එය පෙන්වයි. හරස් සම්පාදන විකල්ප භාවිතා කරමින් ඔබට 1.7 JDK භාවිතා කර 1.1 පන්තියේ අනුවාදයක් සමඟ කේතය සම්පාදනය කළ හැකිය (1.7 සිට).
ඇන්ඩ rew තොම්සන්

85
අසන ලද ප්‍රශ්නය ලෙස එය නිවැරදි කරන්නේ කෙසේදැයි මෙම පිළිතුර පැහැදිලි නොකරයිද?
ජොනතන් ලියුං

7
සූර්යග්‍රහණයෙන් පෙර අනුවාදයකට කෙලින්ම සම්පාදනය කිරීම සඳහා මෙය කදිම විසඳුමකි: stackoverflow.com/a/16345710/2091700
ඇල්ෆා

19
IN සූර්යග්‍රහණ ව්‍යාපෘතිය => Proerties => java compiler; ඔබේ jre හෝ jdk අනුව අනුවාදයට "සම්පාදක අනුකූලතා මට්ටම" සකසන්න. මට නම් එය 1.6 සඳහා 1.6
සෑම්

5
දැනට සම්පාදනය කරන JRE / JDK සමඟ අනුකූල නොවන පරිදි සම්පාදක ප්‍රභවය සකසා ඇති විට මෙය සිදුවිය හැකිය. උදාහරණයක් ලෙස මම පහත දැක්වෙන අගයන් eclipse .settings ෆෝල්ඩරයෙන්, org.eclipse.jdt.core.compiler.compliance = 1.7, org.eclipse.jdt.core.compiler.source = 1.7, org.eclipse.jdt.core.compiler වෙතින් සොයා ගතිමි. .codegen.targetPlatform = 1.7. මගේ සම්පාදකයා 1.6.0_32 විය. අගයන් 1.6 දක්වා වෙනස් කිරීමෙන් පසුව ගැටළුව විසඳා ඇත. මෙම ගැටළුව ආරම්භ වූයේ මා JDK 1.7 භාවිතා කරන වෙනත් වැඩබිමකින් ව්‍යාපෘතිය පිටපත් කිරීමෙන් පසුවය :(
Gana

369

java.lang.UnsupportedClassVersionError එය සිදුවන්නේ සම්පාදක වේලාවේදී වැඩි ජේඩීකේ සහ ධාවන කාලය තුළ අඩු ජේඩීකේ නිසාය.


11
+1: මෙම සංකේතාත්මක සබැඳිය ( /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java) ජාවාක් සමඟ සම්පාදනය කිරීම සඳහා භාවිතා කරන අනුවාදයට වෙනස් කිරීම එය
විසඳීය

1
ඉහත වෙනසක් සිදු කරන්නේ කෙසේද?
අන්කූර් රියානි

8
ව්‍යාපෘතිය -> ගුණාංග -> ජාවා සම්පාදකයා ව්‍යාපෘති විශේෂිත සැකසුම් සක්‍රීය කරන්න. ඉන්පසු 1.7, 1.6 හෝ 1.5 දක්වා සම්පාදක අනුකූලතා මට්ටම තෝරන්න, ඔබේ යෙදුම ගොඩනඟා පරීක්ෂා කරන්න.
විවේක් කුමාර් රේ

මම ජාවා 7 වෙත ගිය විට, කෙසේ හෝ සූර්යග්‍රහණය ජාවා 6 හි ධාවනය කිරීමට උත්සාහ කරමින් සිටියේය ... ඒ මන්දැයි නොදැන. පැරණි JDK අස්ථාපනය කර මා වෙනුවෙන් උපක්‍රමය කළා.
HDave

9
@ezdazuzena එසේ කිරීමට භාවිතා sudo update-alternatives --config javaකරයි.
Thorbj Rrn Ravn Andersen

115

සූර්යග්‍රහණයේ දී, මම දැන් මෙනු විධාන කවුළුව -> මනාපයන් -> ජාවා -> සම්පාදකයා වෙත ගොස් "සම්පාදක අනුකූලතා මට්ටම" 1.6 ලෙස සකසා ඇත.


3
සූර්යග්‍රහණයේදී, සමහර විට ව්‍යාපෘති පැතිකඩ සුදුසු ජාවා අනුවාදයට වෙනස් කළ යුතුය.
බිලාල් මිර්සා

6
ස්තූතියි. සූර්යග්‍රහණයේ පෙරනිමි ක්‍රියාත්මක කිරීමේ පරිසරය (ගොඩනැගීමේ මාවතේ ගමන් කරන JRE) සැකසීම වෙනම පසුබිමක් බව සඳහන් කිරීම වටී . මම JRE සකසා ඇති නමුත් සම්පාදක අනුකූලතා මට්ටම නොවේ; මෙය සවි කර ඇත.
wchargin

විකල්පය සැකසීමට සුදුසුම ස්ථානය මෙය බව වැරදි පණිවිඩයෙන් ඔබ නිගමනය කළේ කෙසේද?
ඇලෙක්සැන්ඩර්

සමහර විට මෙය: stackverflow.com/questions/7073485/… ඔබ කුහුඹුවා සහ සූර්යග්‍රහණය භාවිතා කරන්නේ නම් උදව් විය හැකිය.
OuuGiii

ප්‍රශ්නය වන්නේ නොට්පෑඩ් ++ ගැන මිස සූර්යග්‍රහණය ගැන නොවේ.
gotwo

60

කණගාටු නොවන්න, මම එය විසඳුවා.

එය සැබවින්ම සරලයි - ඔබ එකම අනුවාදය සමඟ BOTH JRE / JDK ස්ථාපනය කළ යුතුය.

JRE 6 -> JDK 6

JRE 7 -> JDK 7

සහ යනාදි.


29
java 7 හට කිසිදු ගැටළුවක් නොමැතිව 6 ක් හැසිරවිය හැකිය.
damienix

amdamienix ඔබට බොහෝ විට ජාවා 7 ජේආර්ඊයට කිසිදු ගැටළුවක් නොමැතිව ජාවා 6 සම්පාදනය කළ පන්තියක් හැසිරවිය හැකි බව සඳහන් කිරීමට අවශ්‍ය වනු ඇත, එසේ නොමැතිනම් ඔබේ ප්‍රකාශය ව්‍යාකූලත්වයට මඟ පාදයි.
ඉදිරිපස

43

මෙම දෝෂයෙන් අදහස් වන්නේ ඔබ ස්ථාපනය කර ඇතිවාට වඩා ජාවා හි නවතම අනුවාදයක් සමඟ සම්පාදනය කරන ලද ජාවා "පන්ති" ගොනුවක් පූරණය කිරීමට උත්සාහ කරන බවයි.

උදාහරණයක් ලෙස, ඔබේ .classගොනුව JDK 7 සඳහා සම්පාදනය කළ හැකි අතර ඔබ එය JDK 6 සමඟ ක්‍රියාත්මක කිරීමට උත්සාහ කරයි.

එබැවින් විසඳුම එක්කෝ:

  • ඔබගේ ජාවා ධාවන කාලය වැඩි දියුණු කරන්න හෝ
  • ඔබේ දේශීය ජාවා සම්පාදකය භාවිතා කරමින් ඔබට ප්‍රභවයක් තිබේ නම් පන්තිය නැවත සකස් කරන්න (ඔබට එකක් තිබේ නම්).

    javac FileName.java

සංවර්ධකයින් සඳහා, .class ගොනුවක වෙනත් සංවර්ධකයෙකු පරික්ෂා කළහොත් මෙය සිදුවිය හැකි අතර, ඔබට වඩා නව ජාවා සංස්කරණයක් ඔවුන් සතුව ඇත!


22

කේතය සම්පාදනය කළ අනුවාදයට සහය නොදක්වන ජාවා අනුවාදයකින් ඔබේ වැඩසටහන ක්‍රියාත්මක කිරීමට ඔබ උත්සාහ කරයි. එබැවින් මූලික වශයෙන් ඔබ ඔබේ කේතය ඉහළ අනුවාදයකින් සම්පාදනය කර අඩු අනුවාදයක් භාවිතයෙන් එය ක්‍රියාත්මක කිරීමට උත්සාහ කළ යුතුය.

ඔබ ලබා ගන්නා විට

Unsupported major.minor version 51.0

සහ 51.0 අනුවාදය J2SE 7 ට අනුරූප වේ ඔබ බොහෝ විට ඔබේ කේතය ජාවා 7 හි සම්පාදනය කර ඇති අතර අඩු අනුවාදයක් භාවිතයෙන් එය ක්‍රියාත්මක කිරීමට උත්සාහ කරයි. java -versionපෙන්වන දේ පරීක්ෂා කරන්න . එය ජාවා 7 අනුවාදය විය යුතුය. PATH / JAVA_HOME හි සුදුසු වෙනස්කම් සිදු නොකළහොත්. නැතහොත් ඔබ කේතය ධාවනය කිරීමට උත්සාහ කරන එකම අනුවාදය සමඟ සම්පාදනය කළ හැකිය. මෙම මානකරණ වැට්ටවීමට නම් ඔබ සෑම විටම සත්ය මාර්ගය දිය හැකි /home/user/jdk1.7.0_11/bin/javacසහ /home/user/jdk1.7.0_11/bin/java.


18

මට මැක්හි ද එවැනිම තත්වයක් ඇති අතර, පහත ක්‍රියාදාමය මට ප්‍රයෝජනවත් විය:

පර්යන්තයේ ටයිප් කරන්න

vi ~/.profile

ඉන්පසු ගොනුවේ මෙම රේඛාව එකතු කර සුරකින්න

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home

ඔබේ පරිගණකයේ ඇති අනුවාදය වැනි අනුවාදය 1.7.0_25.

සංස්කාරකයෙන් ඉවත් වී, පහත දැක්වෙන විධානය ටයිප් කර එය .ලදායී වේ

source ~/.profile 

ප්‍රති .ලය පරීක්ෂා කිරීම සඳහා java -version ටයිප් කරන්න

java -version 

.profileගොනුව යනු කුමක්ද?

.profile ගොනුව සැඟවුණු ගොනුවකි. එය විකල්ප ගොනුවක් වන අතර එය පරිශීලකයාගේ පැතිකඩ ගොනුව ලොග් වූ විට ක්‍රියාත්මක කිරීමට අණ කරන පද්ධතියට කියයි. නිදසුනක් ලෙස, මගේ පරිශීලක නාමය බ un නෝ නම් සහ / පරිශීලකයින් / බ un නෝ / හි .ප්‍රොෆයිල් ගොනුවක් තිබේ නම්, එහි සියලුම අන්තර්ගතයන් ලොග්-ඉන් ක්‍රියාපටිපාටිය අතරතුර ක්‍රියාත්මක වේ.

මුලාශ්‍රය: http://computers.tutsplus.com/tutorials/speed-up-your-terminal-workflow-with-command-aliases-and-profile--mac-30515


16

සූර්යග්‍රහණ මෙනුවේ කවුළුව -> මනාප -> ජාවා -> සම්පාදකය පිරික්සුම "ව්‍යාපෘති විශේෂිත සැකසුම් වින්‍යාස කරන්න".

ඔබට එකම ජාවා අනුවාදය සමඟ දෝෂයක් තිබේ නම්: ඔබේ ව්‍යාපෘතියේ බිල්ඩ් ෆෝල්ඩරය අතින් මකා දැමීමට උත්සාහ කරන්න. ඉන්පසු සූර්යග්‍රහණය නැවත ආරම්භ කරන්න.


14

ඔබට ජාවා 7 හි JAR පුස්තකාලයක් සම්පාදනය කළ හැකි අතර, ඔබට ඇත්තේ ජාවා ධාවන කාලය ලෙස ජාවා 6 පමණි. සමහර නව පුස්තකාල සමඟ එය සිදුවිය හැකිය.


14

වඩාත්ම සුලභ ගැටළුව වන්නේ ඔබේ JAVA_HOMEවිචල්‍යය වැරදි ලෙස වින්‍යාස කිරීමයි , එය ඔබ බහු ස්ථාපනය කර ඇත්නම් නිවැරදි ජාවා සංවර්ධන කට්ටල පුස්තකාලයට යොමු විය යුතුය.

SDK ජාවා ෆෝල්ඩරය පිහිටා ඇති ස්ථානය සොයා ගැනීමට, පහත දැක්වෙන විධානයන් ක්‍රියාත්මක කරන්න:

jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'

ඩේබියන් / උබුන්ටු

ඔබ ස්ථාපනය කර ඇති ජාවා (openjdk) පරීක්ෂා කිරීමට, හරහා පරීක්ෂා කරන්න:

dpkg -l "openjdk*" | grep ^i

හෝ:

update-java-alternatives -l

එය වෙනස් කිරීමට, භාවිතා කරන්න:

update-alternatives --config java

සමඟ උපසර්ගය sudoඅවශ්‍ය නම් .

විකල්ප ජාවා අනුවාදය තේරීමට.

නැතහොත් ස්ථාපනය සඳහා ඇති ඒවා පරීක්ෂා කරන්න:

apt-cache search ^openjdk

සමඟ උපසර්ගය sudoඅවශ්‍ය නම් .

එවිට ඔබට ස්ථාපනය කළ හැකිය, උදාහරණයක් ලෙස:

apt-get install openjdk-7-jre

සමඟ උපසර්ගය sudoඅවශ්‍ය නම් .

ෆෙඩෝරා, ඔරකල් ලිනක්ස්, රෙඩ් හැට්

සුදුසු පැකේජයක් හරහා ස්ථාපනය / උත්ශ්‍රේණි කිරීම:

yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel

මෙම java-1.7.0-openjdkපැකේජය පමණක් ජාවා runtime environment අඩංගු වේ. ඔබට ජාවා වැඩසටහන් සංවර්ධනය කිරීමට අවශ්‍ය නම් java-1.7.0-openjdk-develපැකේජය ස්ථාපනය කරන්න .

BSD

FreeBSD Ports එකතුවෙහි OpenJdk7 නමින් OpenJDK 7 පැකේජයක් ඇත එය බොහෝ විට නැවත සකස් කළ යුතුය.

බලන්න: OpenJDK විකිය පිටුව .

වින්ඩෝස්

ඔරකල් අඩවියෙන් සුදුසු ජාවා එස්ඊ සංවර්ධන කට්ටල පුස්තකාලය ස්ථාපනය කරන්න හෝ ස්ථාපනය කරන්න

ජෙන්කින්ස්

ඔබ ජෙන්කින්ස් සමඟ මෙම ගැටලුව අත්විඳින්නේ නම්, බලන්න:

කෙසේ වෙතත් ජාවා සමඟ නිවැරදි අනුවාදය තෝරා ගැනීම (නව) සමඟ update-alternativesවැඩ කළ යුතුය.


වලාකුළු සහිත පොකුරකට ස්පාර්ක් සේවාව එක් කිරීමෙන් පසුව ධාරකයක ස්පාර්ක් 2-ෂෙල් භාවිතා කිරීමට උත්සාහ කරන විට මෙම පිළිතුර මට ප්‍රයෝජනවත් විය.
Alter

12

මගේ යෙදුම සෑදීම සඳහා මම කුහුඹුවන්ගේ පිටපතක් සමඟ වැඩ කරන විටද මම එම ගැටලුවටම මුහුණ දී සිටිමි .

මම සූර්යග්‍රහණය භාවිතා කරමිමගේ යෙදුම් සංවර්ධනය සඳහා කරන අතර, ව්‍යාපෘතියේ ගොඩනැඟීමේ ගුණාංගවල මම සම්පාදක අනුවාදය වෙනස් කළෙමි. නමුත් එය මට සාර්ථක වූයේ නැත. එවිට මම සොයාගත්තා මට කුහුඹුවන්ගේ පිටපතෙහි සම්පාදක අනුවාදය ලබා දිය හැකි බව.

මම ජාවා ලිපිගොනු සම්පාදනය කරන කොටසේ කුහුඹුවන්ගේ පිටපත වෙනස් කළෙමි.

<target name="build-java" depends="prepare-build">
    <echo message="Compiling java files"/>
    <javac ....
           target="1.5"...
    </javac>
</target>

සහාය නොදක්වන ප්‍රධාන සුළු ගැටළුව විසඳීමට මෙය මට වැඩ කළේය.


12

මම JDK 1.7 ස්ථාපනය කළ විට ගැටළුව විසඳී ඇත.


12

1.7 හි ලියා ඇති ව්‍යාපෘතියක එකම ගැටලුව මට ඇති අතර 1.6 දී ක්‍රියාත්මක කිරීමට උත්සාහ කළෙමි.

සූර්යග්‍රහණයේ මගේ විසඳුම:

  • ඔබගේ ව්‍යාපෘති ගුණාංග -> ජාවා බිල්ඩ් පාත් -> පුස්තකාල මත දකුණු ක්ලික් කරන්න

  • ඔබේ JRE පද්ධති පුස්තකාලය තෝරන්න සහ දකුණු පස ඇති Edit ක්ලික් කර ඉලක්කගත JRE තෝරන්න.

  • දැන් වම්පස ඇති ජාවා කම්පයිලර් වෙත ගොස් ඔබේ ඉලක්කයට සම්පාදක අනුකූලතා මට්ටම වෙනස් කරන්න.

ඒක මට වැඩක්.


11

කිහිප දෙනෙකු විසින් වෙනත් තැනක පිළිතුරු දී ඇති පරිදි, ජාවා වැඩසටහන එය සම්පාදනය කරන ලද ජාවා හි පැරණි අනුවාදයක් මත ක්‍රියාත්මක වේ. පසුගාමී අනුකූලතාව සඳහා එය "හරස් සම්පාදනය" කළ යුතුය. වෙනත් ආකාරයකින් කිවහොත්, ප්‍රභවය සහ ඉලක්කගත ජාවා අනුවාද අතර නොගැලපීමක් තිබේ.

සූර්යග්‍රහණ මෙනු වල විකල්ප වෙනස් කිරීම ඔහු / ඇය සූර්යග්‍රහණය භාවිතා නොකරන බව පැවසූ මුල් පෝස්ටරයට පිළිතුරු නොදෙයි. OpenJDK javac අනුවාදය 1.7 හි, ඔබ පරාමිතීන් භාවිතා කරන්නේ නම් 1.6 සඳහා හරස් සම්පාදනය කළ හැකි -sourceඅතර -target, ඊට අමතරව ඉලක්කගත අනුවාදයේ rt.jar -file සම්පාදනය කරන වේලාවේදී (එනම් පැරණි එක) සම්පාදනය කළ හැකිය. ඔබ ඇත්ත වශයෙන්ම 1.6 JRE ස්ථාපනය කරන්නේ නම්, ඔබට එහි ස්ථාපනය වෙත යොමු කළ හැකිය (නිදසුනක් ලෙස, /usr/lib/jvm/java-6-openjdk-i386/jre/lib/rt.jar උබුන්ටු මත, / usr / jdk / jdk1. 6.0_60 / jre / lib / rt.jar පෙනෙන පරිදි SunOS. සමාවන්න, එය වින්ඩෝස් පද්ධතියක කොතැනදැයි මම නොදනිමි). එසේ වැනි:

javac -source 1.6 -target 1.6 -bootclasspath /usr/lib/jvm/java-6-openjdk-i386/jre/lib/rt.jar HelloWorld.java

ඔබට අන්තර්ජාලයෙන් rt.jar බාගත කරගත හැකි බව පෙනේ. මෙය එතරම් අලංකාර නැත:

javac -source 1.6 -target 1.6 -bootclasspath ./rt.jar HelloWorld.java

10

මේ මත පදනම්ව ...

J2SE 8 = 52
J2SE 7 = 51
J2SE 6.0 = 50
J2SE 5.0 = 49
JDK 1.4 = 48
JDK 1.3 = 47
JDK 1.2 = 46
JDK 1.1 = 45

සූර්යග්‍රහණයේ දී, පැකේජ ගවේෂකයේ ව්‍යාපෘතිය මත දකුණු ක්ලික් කරන්න:

මාවත සාදන්න -> ගොඩනැගීමේ මාර්ගය වින්‍යාස කරන්න

යටතේ:

ජාවා කේත පාත් -> පුස්තකාල -> පුස්තකාලය එක් කරන්න -> JRE පද්ධතිය පුස්තකාලය -> ස්ථාපිත JREs -> සොයන්න .

සෙවීම අවසන් වූ පසු ඇති ලැයිස්තුවේ ඇති පුස්තකාලය තේරීමෙන් අවශ්‍ය JRE එකතු කරන්න.


10
  • ඔබ මාවන් භාවිතා කරන්නේ නම්, ඔබේ ජාවා සම්පාදක මට්ටම සකසන්න. විධාන රේඛාවක් විවෘත java -versionකර ඔබේ සම්පාදක මට්ටම සඳහා ලියන්න :

    රූප විස්තරය මෙහි ඇතුළත් කරන්න

  • ඔබ IntelliJ IDEA භාවිතා කරන්නේ නම්, ව්යාපෘතිය → තෝරා ගොනුවසැකසුම්තැනීමේ ක්රියාකරවීම විහිදුම්Compilerජාවා Compiler . ඉන්පසු මෙම රූපය මෙන් බයිට් කේතය 1.7 ලෙස වෙනස් කරන්න:

    රූප විස්තරය මෙහි ඇතුළත් කරන්න


පොම් වෙනස් කිරීමෙන් පසුව මට මේවන් පිරිසිදු ස්ථාපනය කිරීමට අවශ්‍ය විය.
ජෝ බොරිස්කෝ

10

Maven භාවිතා කරන අතරතුර ඔබ මෙම ගැටලුවට මුහුණ දෙන්නේ නම් , ඔබට ප්ලග්-ඉන් Maven Compiler භාවිතා කර ඔබේ කේතය සම්පාදනය කළ හැකිය .

 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
       .....

UPDATE: සකසා sourceහා targetකිරීමට 1.8ඔබ JDK 8 භාවිතා කරන්නේ නම්.


සබැඳිය බැලීම / විවෘත කිරීම වෙනුවට ප්ලගිනය හරස් සම්පාදනය කිරීම සඳහා භාවිතා කරන ආකාරය පිළිබඳ කුඩා කොටසක්
coding_idiot

8

සූර්යග්‍රහණයෙන් කුහුඹුවා ධාවනය කරන විට මට එකම දෝෂ පණිවිඩයක් තිබුනි, නමුත් මෙහි සඳහන් අනෙක් විසඳුම් මගේ ගැටලුව විසඳුවේ නැත. හාස්‍යජනක දෙය නම් වින්ඩෝස් විධාන රේඛාවෙන් කුහුඹුවා ධාවනය කිරීම හොඳින් ක්‍රියාත්මක වීමයි, එබැවින් එය සූර්යග්‍රහණය තුළ වින්‍යාස කිරීමේ ගැටලුවක් විය යුතුය.

සූර්යග්‍රහණය යටතේ ඔබට කුහුඹුවා සමඟ ධාවනය විය යුතු පරිසරය නියම කළ හැකි අතර මෙය JDK වෙනුවට JRE ලෙස සකසා ඇත.

  • වෙත යන්න: ධාවනය -> බාහිර මෙවලම් -> බාහිර මෙවලම් වින්‍යාසය ...
  • ඔබේ ව්‍යාපෘතිය සඳහා කුහුඹුවා build.xml තෝරන්න (ඔබට විවිධ ව්‍යාපෘති තිබේ නම්)
  • 'JRE' ටැබ් එක ක්‍රියාත්මක කරන්න
  • මෙන්න 'වෙනම JRE: jre6' තෝරාගෙන ඇත. මම මෙය 1.6 හෝ 1.7 ශ්‍රේණියේ සිට JDK ලෙස වෙනස් කළ විට දෝෂය නැති වී ගියේය.

8

මම එය නිවැරදි කරන්නේ කෙසේද?

මෙම දෝෂයෙන් අදහස් වන්නේ ඔබේ පන්ති කේතය ක්‍රියාත්මක කිරීම සඳහා භාවිතා කරන JRE භාවිතා කළ ජාවා අනුවාදය හඳුනා නොගන්නා බවයි. සාමාන්‍යයෙන් ඔබේ පන්ති ගොනුව ජනනය කළ ජාවා අනුවාදය (එනම් එය සම්පාදනය කරන ලදි) නවතම නිසාය.

එය නිවැරදි කිරීම සඳහා, ඔබටද හැකිය

අ) ඔබේ ජාවා ප්‍රභවයන් ක්‍රියාත්මක කිරීමට භාවිතා කරන ජාවා සම්පාදකයාගේ එකම හෝ පැරණි අනුවාදයක් සමඟ සම්පාදනය කරන්න. එනම් සුදුසු JDK ස්ථාපනය කරන්න.

b) ඔබේ ජාවා ප්‍රභවයන් ජාවා සම්පාදකයාගේ නවතම අනුවාදය සමඟ සම්පාදනය කරන්න, නමුත් අනුකූලතා ප්‍රකාරයේදී. එනම් භාවිතා කරන්න-target පරාමිතිය .

ඇ) ඔබේ සම්පාදනය කරන ලද පංති JRE හි පන්ති සම්පාදනය කිරීමට භාවිතා කළ JDK හා සමාන හෝ නව අනුවාදයකින් ධාවනය කරන්න.

javac -versionසම්පාදකයා සහ java -versionධාවන කාලය සඳහා ඔබ දැනට භාවිතා කරන අනුවාදයන් පරීක්ෂා කළ හැකිය .

මම JDK ස්ථාපනය කර JRE වෙනුවට මගේ PATH විචල්‍යය JDK වෙත සැකසිය යුතුද?

සම්පාදනය සඳහා, නිසැකවම, ඔබට අවශ්‍ය විශේෂිත JDK ස්ථාපනය කර වින්‍යාස කරන්න.

ධාවන කාලය සඳහා, ඔබට JDK හෝ ස්වාධීන JRE සමඟ එන එකක් භාවිතා කළ හැකිය, නමුත් නොසලකා, ඔබ නිවැරදි අනුවාදයන් ස්ථාපනය කර ඇති බවටත්, පුදුමයක් නොමැති වන පරිදි ඔබේ PATH වින්‍යාස කර ඇති බවටත් වග බලා ගන්න.

JRE හෝ JDK හි PATH විචල්‍යය අතර වෙනස කුමක්ද?

PATH පරිසර විචල්‍යය විධාන කවචයට ඔබ ටයිප් කරන විධානය සොයන්නේ කොතැනටදැයි කියයි. ඔබ ටයිප් කරන විට java, විධාන කවචයේ පරිවර්තකය PATHවිචල්යයේ නිශ්චිතව දක්වා ඇති සියලුම ස්ථාන හරහා වමේ සිට දකුණට බලනු ඇත java. ඔබට ජාවාහි බහු සංස්කරණ ස්ථාපනය කර ඇත්නම් - එනම් ඔබ සතුව ඇතjava PATH විචල්‍යයේ නිශ්චිතව දක්වා ඇති ස්ථාන කිහිපයක ක්‍රියාත්මක කළ හැකි නම්, වමේ සිට දකුණට යන විට හමු වූ පළමු අවස්ථාව ක්‍රියාත්මක වන්නේ එයයි.

සම්පාදක විධානය javacපැමිණෙන්නේ JDK සමඟ පමණි. ධාවන කාල විධානය javaජේඩීකේ සමඟ එන අතර එය ජේආර්ඊ හි ඇත.

බොහෝ විට ඔබ විසින් javacස්ථාපනය කර ඇති එක් අනුවාදයක් (51.0 = ජාවා 7) ඇති අතර, ඔබ විසින්ම ස්ථාපනය කර ඇති එකම අනුවාදයද ඇත java, නමුත් තවත් පෙර සංස්කරණයක් javaPATH හි මීට පෙර දර්ශනය වන අතර ඔබ බලාපොරොත්තු වන අනුවාදය වෙනුවට එය ක්‍රියාත්මක වේ. .


7

ඔබ JDK හි ඉහළ සංස්කරණයක් සම්පාදනය කිරීමට භාවිතා කර ඇති අතර JDK / JRE හි පහළ අනුවාදයකින් ධාවනය කිරීමට උත්සාහ කරයි .

මෙය පරීක්ෂා කිරීම සඳහා, අනුවාද තොරතුරු බලන්න:

javac -version

java -version

ඒවා වෙනස් වන අතර ජාවාට ඉහළ අනුවාද අංකයක් ඇත.

මෙය මඟහරවා ගැනීම සඳහා, JDK අනුවාදයෙන් ජාවා භාවිතා කර ධාවනය කරන්න හෝ ඔබට නව JRE / JDK තිබේ නම් එයද ක්‍රියාත්මක වේ.

which javacඋදාහරණයක් ලෙස ඔබට ස්ථානය කියයි /usr/bin/javac. කෙලින්ම භාවිතයෙන් ධාවනය කරන්න/usr/bin/java <program> .

නැතහොත් ඔබට ස්ථිර විසඳුමක් ලෙස පරිසර විචල්‍යය සැකසිය හැකිය.


6

මම ජාවා 6 වෙත ආපසු ගොස් මීට පෙර ජාවා 7 සමඟ සම්පාදනය කරන ලද පන්ති ධාවනය කිරීමට උත්සාහ කරන විට මෙම ගැටළුව තිබුනේ නම් මට වැඩ කළේ මනාපයන්> ජාවා> සම්පාදකයා -> අනුකූලතා මට්ටම 1.6 දක්වා සකසා “ව්‍යාපෘති සැකසුම් වින්‍යාස කිරීම” යන්නයි.


6

අද, මේ දෝෂ අපගේ පෙනී Tomcat මත 7 , උබුන්ටු 12.04.2 දි.කා.සේ. (නිශ්චිත කබල්ලෑවකුගේ):

/var/log/tomcat7/localhost.2014-04-08.log:
අප්රේල් 8, 2014 9:00:55 AM org.apache.catalina.core.StandardContext filterStart
මැන්ඩෙලා: ව්යතිරේක ආරම්භ පෙරහන struts2
java.lang.UnsupportedClassVersionError: පාලකය / ReqAccept: සහාය නොදක්වන මේජර්.මිනර් අනුවාදය 51.0 (පන්ති පාලකය පූරණය කළ නොහැක .ReqAccept)

මෙම Struts අයදුම් ජාවා 7 සමග සම්පාදනය කර ඇත.

ටොම්කාට් 7 නැවත ආරම්භ කිරීම සඳහා යමෙකු "සේවා ටොම්කාට් [නවත්වන්න / ආරම්භ කරන්න]" භාවිතා කරයි.

$ ps -ef | grep java
tomcat7 31783 1 32 20:13? 00:00:03 / usr / lib / jvm / default-java / bin / java ...
$ / usr / lib / jvm / default-java / bin / java -version
java version "1.6.0_27"

එය "සහාය නොදක්වන මේජර්.මිනර් අනුවාදය 51.0" දෝෂයට හේතු වේ.

ටොම්කාට් 7 නැවත ආරම්භ කිරීම සඳහා අපි "/etc/init.d/tomcat7 [stop / start]" භාවිතා කළ විට, ගැටළුව විසඳුණි.

$ ps -ef | grep java
tomcat7 31886 1 80 20:24? 00:00:10 /usr/local/java/jdk1.7.0_15/bin/java us /usr/local/java/jdk1.7.0_15/bin/java
-version
java version "1.7.0_15"


6

මම ඒක විසඳුවා. මම දිව්වා:

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

දෝෂය නොමඟ යවන සුළුය Unsupported major.minor version 51.0. 51 (ජාවා 7) අනුවාදය සහය නොදක්වන බව මෙයින් හැඟේ. අපි ජාවා 6 භාවිතා කළ යුතුයි.

දෝෂය විය යුතුව තිබුණේ:

වර්තමාන ජාවා අනුවාදය වන 50, සහාය නොදක්වයි. ඒ වෙනුවට ජාවා අනුවාදය 7 (51: 0 සහ ඊට වැඩි) භාවිතා කරන්න .`


6

ඔබගේ ජාවා ගොනුව සම්පාදනය කර ඇත්තේ ඔබ එය ක්‍රියාත්මක කිරීමට උත්සාහ කරන අනුවාදයට (අඩු ධාවන කාල අනුවාදය) වඩා වෙනස් අනුවාදයකින් (ඉහළ සම්පාදක අනුවාදයකින්) ය.

අඩු අනුවාදයන් සමඟ සම්පාදනය කරන ලද පන්ති පසුකාලීන ඉහළ සංස්කරණ වලදී ක්‍රියාත්මක වනු ඇතැයි අපේක්ෂා කරන බව මූලික අවබෝධයයි. නමුත් ප්‍රතිවිරුද්ධ (ඉහළ සම්පාදක අනුවාදයක් සමඟ සම්පාදනය කර අඩු ධාවන කාල අනුවාදය සමඟ එය ක්‍රියාත්මක කිරීමට උත්සාහ කිරීම) සමහර විට කළ නොහැකි ය.

එබැවින් ඔබේ වැඩසටහන ක්‍රියාත්මක කිරීමට උත්සාහ කිරීමේදී මෙම දෝෂය ඔබට පෙන්වනු ලැබේ. සහාය නොදක්වන මේජර්.මිනර් අනුවාදය xx

ප්‍ර: මම ජාවා 7 හි යෙදුමක් නිර්මාණය කර ඇත, නමුත් මගේ පරිශීලකයින් එය ක්‍රියාත්මක කිරීමට උත්සාහ කරන විට ඔවුන්ට සහාය නොදක්වන මේජර්.මිනර් අනුවාදය 51.0 දෝෂයක් ලැබේ. මෙයින් අදහස් කරන්නේ කුමක්ද සහ ඒ පිළිබඳව මට කුමක් කළ හැකිද?

පිළිතුර : ඔබ ජාවා 7 හි ජාවාක් භාවිතයෙන් යෙදුමක් සම්පාදනය කරන්නේ නම්, එහි ප්‍රති class ලයක් ලෙස ඇති පංති ලිපිගොනු වල 51.0 අනුවාද අංකය ඇත. 7 ට පෙර ජාවා අනුවාදයන් මෙම අංකය හඳුනා නොගනී, එබැවින් ඔබේ යෙදුම ක්‍රියාත්මක කිරීමට පෙර ඔබේ පරිශීලකයින්ට ජාවා 7 වෙත යාවත්කාලීන කළ යුතුය. ඔබ කිසිදු ජාවා 7 ඒපීඅයි භාවිතා නොකරන්නේ නම්, ඔබට ජාවා-ටාර්ගට් 1.6 භාවිතා කර 1.6-අනුකූල පන්ති ගොනුවක් නිර්මාණය කිරීමට උත්සාහ කළ හැකිය. ඔබේ යෙදුම වෙබ්ස්ටාර්ට් භාවිතයෙන් යොදවා ඇත්නම් ඔබට අවශ්‍ය අවම අනුවාදය නියම කළ හැකිය. වැඩි විස්තර සඳහා, ජාවා වෙබ් ආරම්භය සහ ජේඑන්එල්පී පිළිබඳ ලියකියවිලි මෙතැනින් බලන්න. දැනට ජාවා 6 ඩෙස්ක්ටොප් පරිගණකවල ඇති අවසන් පරිශීලකයින් සඳහා අපි ජාවා 7 වෙත ස්වයංක්‍රීයව යාවත්කාලීන කිරීම අවුලුවන විට මෙම ගැටළුව පහව යනු ඇත. මේ සඳහා වන කාල නියමය තවම නිශ්චය කර නැත, සංවර්ධකයින්ට ඔවුන්ගේ කේතය සහ JDK 7 අතර ඇති ඕනෑම ගැටළුවක් විසඳීමට කාලය ලබා දීමට අපට අවශ්‍යය.

(මුලාශ්‍රය: oracle.com .)


5

JAVA_HOME විචල්‍යය සැකසීමෙන් ඔහ් මැක් ඕඑස් XI හට මෙම ගැටළුව විසඳීමට හැකි විය:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home

4

මුලින්ම අපි මූලික කරුණු කිහිපයක් නිවැරදිව බලමු ...

ජේආර්ඊ යනු ඔබට පුස්තකාල, ජේවීඑම්, ජාවා ප්ලගීන සහ ජාවා වෙබ් ආරම්භය ලබා දීමට යන නෙට්බීන්ස් / එක්ලිප්ස් / ස්ටෑන්ඩ්ලෝන් හි අංගයකි . එය සම්පාදකයින් හෝ නිදොස් කරන්නන් සපයන්නේ නැති බව සලකන්න.

JDK යනු JRE හි සුපිරි කට්ටලය වන අතර එය සම්පාදකයින් සහ නිදොස් කරන්නන් වේ.

එබැවින් ඔබගේ පෙරනිමි පුස්තකාලය JDK වෙනුවට JRE ලෙස ඇති විට, ඔබට දේවල් ආනයනය කිරීමට හොඳ කාලයක් ලැබෙනු ඇත, නමුත් එය සම්පාදනය නොකරනු ඇත.

ඒ වෙනුවට, ඔබේ මාර්ගය ජේඩීකේ වෙත සකසන්න (මම නෙට්බීන්ස් භාවිතා කරමි, මම ඒවා නෙට්බීන්ස් / etc / netbeans.conf හි netbeans.conf භාවිතා කර මාර්ගය වෙනස් කරමි).


4

මගේ නඩුවේ ගැටළුව සේවාදායක ධාවන කාල වින්‍යාසය තුළ විය:

සේවාදායක ධාවන කාල පරිසරය

JRE ඔබට අවශ්‍ය අනුවාදයදැයි පරීක්ෂා කරන්න:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

මෙම ව්‍යාපෘතිය 1.7 අනුවාදයේ පැවති අතර JRE සේවාදායකය 1.6 ලෙස සකසා ඇති අතර එය නිසි ජාවා අනුවාදයට වෙනස් කිරීමෙන් පසුව එය හොඳින් දියත් කර ඇත.


ස්තූතියි! මම සේවාදායක වින්‍යාසයන් වෙනත් ස්ථානයක වෙනස් කළ නමුත් ගැටලුව තවමත් සිදුවී ඇති බැවින් ඔබගේ පිළිතුර මට සැබවින්ම උපකාරී විය; ඔබේ පිළිතුර අනුගමනය කිරීමෙන් ගැටලුව විසඳුණි. මම වින්‍යාසයන් වෙනස් කළ ආකාරය පහත දැක්වේ: 1) සූර්යග්‍රහණය පිළිබඳ සේවාදායක දළ විශ්ලේෂණය විවෘත කරන්න 2) දියත් කිරීමේ වින්‍යාසය විවෘත කරන්න 3) ටැබ් පංති පථයට යන්න 4) එකතු කළ බූට්ස්රැප් සහ නව JRE / JDK සඳහා පරිශීලක ඇතුළත් කිරීම් 5) පැරණි ඇතුළත් කිරීම් ඉවත් කරන ලදි 6) අයදුම් කර වසා දමන්න. මෙවැනි වැරැද්දක් වළක්වා ගැනීමට යමෙකුට එය උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි
පී. වුසිනික්

3

මගේ ඒකක පරීක්ෂණ ක්‍රියාත්මක කිරීම සඳහා විධාන රේඛාවේ සිට මගේ ව්‍යාපෘතිය පිළිබඳ මාවන් සම්පාදනයක් ක්‍රියාත්මක කිරීමට මට සිදුවිය. මම පරීක්ෂණ පන්තියේ වෙනසක් කර සූර්යග්‍රහණය ස්වයංක්‍රීයව නැවත සකස් කිරීමට ඉඩ දුන්නොත්, මට "සහාය නොදක්වන මේජර්.මිනර් අනුවාදය 51.0" දෝෂය ලැබුණි.

මා සතුව JDK6 සහ JDK7 යන දෙකම ස්ථාපනය කර ඇත, නමුත් මගේ සියලුම JRE සැකසුම් 1.6 වෙත යොමු වී ඇත. එය pom සහ Eclipse හි ව්‍යාපෘති ගුණාංග පිටුවෙන්. මේවන් යාවත්කාලීන කිරීමේ ව්‍යාපෘතියක් සහ / හෝ නැවුම්බවක් මෙය විසඳුවේ නැත.

අවසාන වශයෙන් මම ව්‍යාපෘතිය වසා දමා එය නැවත විවෘත කිරීමට උත්සාහ කළෙමි. HTH


3

ඔබ ඔබේ ජාවා පන්තිය JDK 7 සමඟ සම්පාදනය කර ඇති අතර ඔබ JDK 6 මත එකම පන්තියක් ධාවනය කිරීමට උත්සාහ කරයි.


3
  • JDK 7.0.55 ස්ථාපනය කර JDK 7.0.55 සඳහා සූර්යග්‍රහණය සඳහා ජාවා සකසන්න.
  • ගොඩනැගීමේ මාවතේ JDK 7.0.55 වින්‍යාස කිරීමෙන් JDK 7.0.55 සමඟ ව්‍යාපෘතිය ගොඩනඟන්න.
  • මෙනු විසින් JDK 7.0.55 සඳහා එක්ලිප්ස් දී සම්පාදක සකසන්න වින්ඩෝස් -> අභිරුචි -> ජාවා -> Compiler - 1.7 තෝරා ගන්න.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.