- 1 ජාවා සංග්රහණය යනු කුමක්ද? | ආරම්භකයින් සඳහා “සංග්රහණය” අවබෝධය
- 2 ජාවා සංග්රහණය සඳහා අවශ්යතා
- 3 ප්රායෝගිකව ජාවා ගොනුවක් සංග්රහණය කිරීම
- 4 සංග්රහණය පසු වැඩසටහනක් ක්රියාත්මක කිරීම
- 5 පොදු දෝෂ සහ ඒවා සකස් කිරීමේ ක්රම
- 6 IDE එකක් සමඟ සංකලනය
- 7 මූලික javac විකල්ප
- 8 සාරාංශය
- 9 FAQ: Java සංකලනය පිළිබඳ සාමාන්ය ප්රශ්න
ජාවා සංග්රහණය යනු කුමක්ද? | ආරම්භකයින් සඳහා “සංග්රහණය” අවබෝධය
ජාවා තුළ, “සංග්රහණය” යනු මනුෂ්යයන් විසින් ලියන ලද මූලාශ්ර කේතය (.java) ජාවා වර්චුවල් මැෂින් (JVM) එකට කියවිය හැකි ආකාරයකට පරිවර්තනය කිරීමේ ක්රියාවලිය යි.
මෙම ක්රියාවලියේ ප්රතිඵලය .class ගොනුවක් වන අතර එය බයිට්කෝඩ් ලෙස හැඳින්වේ.
C වැනි භාෂා මෙන්ම සෘජුවම ස්වභාවික යන්ත්ර කේතයට සංග්රහණය වන භාෂා වලට වඩා, ජාවා පළමුව මූලාශ්ර කේතය බයිට්කෝඩ් වෙත පරිවර්තනය කර පසු ඒක JVM මත ක්රියාත්මක කරයි.
මෙම ක්රමය හේතුවෙන්, එකම .class ගොනුව විවිධ මෙහෙයුම් පද්ධතිවල ක්රියාත්මක විය හැකි අතර එකම ජාවා වැඩසටහන Windows, macOS, Linux යන පද්ධති තුළ ක්රියාත්මක විය හැක.
තවත් වැදගත් කරුණක් වන්නේ සංග්රහණය සහ ක්රියාත්මක කිරීම වෙන වෙනම ක්රියාකාරකම් බවයි.
- “javac” → සංග්රහණයට වගකිවය
- “java” → ක්රියාත්මක කිරීමට වගකිවය
ආරම්භකයින්ගෙන් සுமார் 90% ක් මෙම වෙනස්කම පැහැදිලි නොවීම නිසා ගැටළුවට මුහුණ දේ.
මෙම දෙකේ නියෝගයන් වෙනස් භූමිකා ගත කරයි යන කරුණ තදින් අවබෝධ කර ගැනීම ප්රථම පියවර ලෙස ඉතා කාර්යක්ෂම වේ.
ජාවා සංග්රහණය සඳහා අවශ්යතා
ජාවා කේතය සංග්රහණය කිරීමට, ඔබ JDK (Java Development Kit) ස්ථාපනය කර තිබිය යුතුය.
JRE එකක් පමණක් ප්රමාණවත් නොවේ, මන්ද javac සංග්රහකය JDK තුළ පමණක් ඇතුළත් වන සංවර්ධක මෙවලමක් වන බැවින්.
පළමුව පහත පරීක්ෂා කරන්න:
javac -version
මෙම නියෝගය සංස්කරණ අංකයක් ලබා දුන්නේ නම්, සියල්ල හොඳයි.
“command not found” වැනි පණිවුඩයක් දැකෙනවා නම්, පහත සඳහන් කරුණක් සත්ය විය හැක:
- JDK ස්ථාපනය කර නොමැත
- JDK ස්ථාපනය කර ඇතත් PATH සකසා නොමැත
- JRE පමණක් ස්ථාපනය කර ඇත (සංවර්ධන මෙවලම් නොමැත)
විශේෂයෙන්, PATH වින්යාසය ආරම්භකයින්ට සාමාන්යයෙන් ගැටළුවක් වේ.
පද්ධතිය javac (හෝ bin) අඩංගු ෆෝල්ඩරය සොයා නොගත්නම්, සංග්රහණය ක්රියා නොකරයි.
නිගමනය:
“JDK ස්ථාපනය” සහ “PATH සත්යාපනය” දෙකම නිසි ලෙස සම්පූර්ණ වූ පසු පමණක් ඔබට ජාවා සංග්රහණය ආරම්භ කළ හැක.
ප්රායෝගිකව ජාවා ගොනුවක් සංග්රහණය කිරීම
මෙහි, අපි සරල නියැදි වැඩසටහනක් සාදමින් javac භාවිතා කර සංග්රහණය කරමු.
පළමුව, පහත අන්තර්ගතය පෙළ සකසනයක (text editor) සුරකින්න.
Sample.java
public class Sample {
public static void main(String[] args) {
System.out.println("Hello Java!");
}
}
ගොනුවේ නාමය Sample.java විය යුතු අතර, පොදු (public) පන්තියේ නාමය ගොනුවේ නාමයට ගැලපීම අත්යවශ්යය.
මෙම නීතිය උල්ලංඝනය කරන්නේ නම් ජාවා සංග්රහණය නොකරයි, එය ආරම්භකයින්ගේ සාමාන්ය වැරදි එකකි.
ඊළඟට, ඔබේ ටර්මිනලය හෝ කමාන්ඩ් ප්රොම්ප්ට් එකේ පහත නියෝගය ක්රියාත්මක කරන්න:
javac Sample.java
සංග්රහණය සාර්ථක නම්, එකම ෆෝල්ඩරයේ Sample.class ගොනුවක් පෙන්වනු ඇත.
මෙය සංග්රහණය සාර්ථකව අවසන් වූ බව පෙන්වයි.
මෙම අවස්ථාවේ, ඔබට ඇත:
- Sample.java (මූලාශ්ර කේතය)
- Sample.class (බයිට්කෝඩ්)
මෙම යුගලය ඇතිව, ඔබට ජාවා වැඩසටහනක් ක්රියාත්මක කිරීමට සූදානම්.
සංග්රහණය පසු වැඩසටහනක් ක්රියාත්මක කිරීම
සංග්රහණය කිරීමෙන් පසු, ඊළඟ පියවර .class ගොනුව ක්රියාත්මක කිරීමයි.
මෙහි භාවිතා කරන නියෝගය java වන අතර javac නොවේ.
java Sample
ප්රධාන කරුණ වන්නේ .class දිගුව ඇතුළත් නොකිරීම ය.
ඔබ java Sample.class ලෙස ලියන්නේ නම්, දෝෂයක් සිදුවේ.
ජාවා වැඩසටහන් ක්රියාත්මක කිරීම සඳහා පන්තියේ නාමය පමණක් සඳහන් කිරීමේ අරමුණ ඇත.
සාරාංශය:
| Role | Command | Target |
|---|---|---|
| Compile | javac Sample.java | .java file |
| Run | java Sample | Class name (no extension) |
javac සහ java නියෝගයන්ගේ වෙනස් භූමිකා පැහැදිලිව අවබෝධ කරගත් පසු, ඔබ ආරම්භක අදියර සාර්ථකව ඉක්මවා ගොස් ඇත.
තිරයේ “Hello Java!” පෙන්වන්නේ නම්, ඔබේ වැඩසටහන සාර්ථකව ක්රියාත්මක විය.
මෙම අවස්ථාවේ, ඔබ අවශ්යම ජාවා වැඩපිළිවෙළ අවබෝධ කරගෙන ඇත.
පොදු දෝෂ සහ ඒවා සකස් කිරීමේ ක්රම
ජාවා සංග්රහණය කිරීමේදී දෝෂ මුණගැසීම ආරම්භකයින්ට සාමාන්යයයි.
මෙහි, බොහෝ පරිශීලකයන් මුහුණ දෙන සාමාන්ය ගැටළු මත අවධානය යොමු කරමු.
1) javac: command not found
ආසන්නව 100% ක අවස්ථාවල, හේතුව පහත සඳහන් කරුණක් වේ:
- JDK ස්ථාපනය කර නොමැත
- PATH නිවැරදිව වින්යාස කර නොමැත
විසඳුම:
javac -version ක්රියාත්මක කරන්න
→ එය ක්රියා නොකරන්නේ නම්, JDK නැවත ස්ථාපනය කර PATH සැකසුම් පරීක්ෂා කරන්න.
2) සංකලනය සාර්ථකයි නමුත් .class ගොනුවක් ජනනය නොවේ
ඉතා සාමාන්ය වැරදි වන්නේ:
ගොනුවේ නාමය පොදු පන්තියේ නාමයට නොගැලපේ
උදාහරණය:
public class Test {
}
→ මෙය සංකලන දෝෂයක් ඇති කරයි.
3) කේතනය-සම්බන්ධ අනතුරු ඇඟවීම්
warning: [options] bootstrap class path not set in conjunction with -source 1.7
මෙවැනි අනතුරු ඇඟවීම් සාමාන්යයෙන් මරණාත්මක දෝෂ නොවේ.
කෙසේ වෙතත්, ඒවා පරණ මූලාශ්ර විකල්ප හෝ කේතනය නොගැලපීම පෙන්විය හැක.
ගැටළු වලක්වා ගැනීමට, සැමවිටම ඔබගේ ගොනු UTF-8 ආකාරයෙන් සුරකින්න.
IDE එකක් සමඟ සංකලනය
ආචාරික Java සංවර්ධනයේ, සංවර්ධකයන් javac අතින් විධාන පේළියෙන් ක්රියාත්මක කිරීම අඩුවෙන් සිදු කරති.
මෙය IDE (එක්සත් සංවර්ධන පරිසර) ස්වයංක්රීයව සංකලනය කළමනාකරණය කරන බැවින් වේ.
පහත සඳහන් IDE ගොඩක් ජනප්රිය සහ ප්රයෝජනවත් වේ:
| IDE | Features |
|---|---|
| IntelliJ IDEA | The de facto standard for modern Java development, suitable for professional use. |
| Eclipse | A long-established IDE widely used in enterprise projects. |
| VS Code | Lightweight; Java Extension Pack provides a complete environment. |
IDE ගොනුවක් සුරකිද්දී ඔබේ කේතය ස්වයංක්රීයව සංකලනය කර දෝෂයන් වහාම ප්රදර්ශනය කරයි.
මෙය විධාන වැරදි සහ PATH අසමත්කම් වැනි නවකයන්ගේ බොහෝ වැරදි ඉවත් කරයි.
එහෙත්, අවම වශයෙන් එක් වරක් javac අතින් සංකලනය කිරීම Java ඇතුළත ක්රියා කරන ආකාරය තේරුම් ගැනීමට වටිනා වේ.
“සංකලනය → ක්රියාත්මක කිරීම” ප්රවාහය ඔබට තේරෙන විට, IDE සමඟ ඔබේ ඉගෙනීමේ වේගය වැදගත් ලෙස වැඩි වේ.
මූලික javac විකල්ප
javac විධානය සංකලනය කෙසේ සිදු කරන්නේ යන්න පාලනය කරන බොහෝ විකල්ප සහය දක්වයි.
නවක මට්ටමේ, ඔබට සාමාන්යයෙන් භාවිතා වන කිහිපයක් පමණ තේරුම් ගැනීමට අවශ්ය වේ.
මෙන්න නියෝජිත තේරීම් තුනක්:
| Option | Description | Example |
|---|---|---|
-d | Specifies the output directory for class files | javac -d out Sample.java |
-classpath | Specifies external libraries or additional class paths | javac -classpath lib/* Sample.java |
--enable-preview | Enables preview language features | javac --enable-preview Sample.java |
-d විකල්පය පැකේජ භාවිතා කරන විට විශේෂයෙන් වැදගත් වේ.
උදාහරණයක් ලෙස, ඔබ package com.example; භාවිතා කරන විට, javac -d නොදැක්වීම වැරදි නාමාවලියක් ඇති කරයි.
ඔබ ආචාරික සංවර්ධනයට ගිය විට, classpath සහ -d විකල්පයන් වැඩි වශයෙන් වැදගත් වේ.
ඔවුන්ගේ නාමයන් මුලින්ම හඳුනා ගැනීම අනාගත ඉගෙනීම පහසු කරයි.
සාරාංශය
Java වැඩසටහනක් ක්රියාත්මක කිරීමට, ඔබට ත්රි-පියවර ක්රියාවලිය තේරුම් ගත යුතුය: මූලාශ්ර කේතය ලියන්න → සංකලනය කරන්න → ක්රියාත්මක කරන්න.
javac (සංකලනය) සහ java (ක්රියාත්මක කිරීම) භූමිකා පැහැදිලි වූ පසු, සංකලනයේ අරමුණ පැහැදිලි වේ.
නවකයන්ට සාමාන්යයෙන් සිදුවන වැරදි දෙක මෙසේය:
- JDK ස්ථාපනය කර නොමැති හෝ PATH සකසා නොමැත
- ගොනුවේ නාමය පොදු පන්තියේ නාමයට නොගැලපේ
මෙම ගැටළු මුලින්ම විසඳීමෙන්, ඔබේ ඉගෙනීමේ මාර්ගයේ අතිරේක වක්රතා වලින් වැළැක්විය හැක.
ඔබට IDE-අධාරිත සංවර්ධනයට යා හැකි වන අතර, මූලික ක්රියාවලිය තේරුම් ගැනීම ඉගෙනීමේ වේගය වැදගත් ලෙස වැඩි කරයි.
මෙම ලිපිය ආරම්භක බින්දුවක් ලෙස භාවිතා කර, පළමුව එක් .java ගොනුවක් .class ගොනුවකට සාර්ථකව පරිවර්තනය කිරීමේදී අවධානය යොමු කරන්න.
එම මොහොත ඔබේ Java ඉගෙනීමේ පළමු සැබෑ සාර්ථකත්වය වේ.
FAQ: Java සංකලනය පිළිබඳ සාමාන්ය ප්රශ්න
Q1: javac සහ java අතර වෙනස කුමක්ද?
A: javac යනු .java ගොනු .class ගොනු බවට පරිවර්තනය කරන සංකලන විධානයයි.
java යනු JVM මත .class ගොනු ක්රියාත්මක කරන ක්රියාත්මක විධානයයි.
Q2: Sample.class ජනනය නොවන්නේ ඇයි?
A: සාමාන්යතම හේතුව ගොනුවේ නාමය සහ public class නාමය නොගැලපීමයි.
පන්තිය public class Sample නම්, ගොනුවේ නාමය Sample.java විය යුතුය.
Q3: IDE එකක් භාවිතා කරන විටත් මට javac ඉගෙනීමට අවශ්යද?
A: IDE ගොනු ස්වයංක්රීයව සංකලනය කරන නමුත්, ක්රියාවලිය තේරුම් නොගත් විට පසුබැසීමේ සිදුවීම් දැන ගැනීමට අපහසු වේ.
මූලික ප්රවාහය එක් වරක් අත්විඳීම IDE භාවිතය ඉතා පහසු කරයි.
Q4: මට කුමන JDK ස්ථාපනය කළ යුතුද?
A: නවකයන් සඳහා, Eclipse Adoptium (Temurin) හි LTS අනුවාද භාවිතා කිරීම පහසුය.
විශේෂ අවශ්යතා නොමැති නම්, Java 17 හෝ 21 ආරක්ෂිත තේරීම් වේ.
Q5: මට javac: command not found යන දෝෂය ලැබේ
A: මෙය JDK ස්ථාපනය කර නොමැති හෝ PATH සකසා නොමැති බවයි.
පළමුව javac -version භාවිතයෙන් පරීක්ෂා කරන්න.

