කෙටි පෝරමය: ඔබේ ප්රධාන භාජනය තුළ තිබේ නම්, එය ක්රියාත්මක කිරීම සඳහා පැහැදිලිව ප්රකාශිත අතිරේක '-ජාර් මාවතක් / ඔබේ ජාර් / ඔබේ ජාර්ස්නාම්.ජාර්' ඔබට අවශ්ය වනු ඇත ('YourJarsName.jar' පන්ති මාවතේ තිබුණද) (හෝ , මීට වසර 5 කට පෙර ඇසූ මුල් ප්රශ්නයට පිළිතුරු සැපයීම සඳහා ප්රකාශ කරන ලදි: ඔබට එක් එක් භාජනය පැහැදිලිව නැවත ප්රකාශ කිරීමට අවශ්ය නැත, නමුත් java6 සමඟ වුවද ඔබේ බඳුන නැවත ප්රකාශ කිරීමට අවශ්ය බව පෙනේ ...)
දිගු පෝරමය: (ජාවා වෙත අන්තර් සම්බන්ධකයන්ට පවා මෙය භාවිතා කළ හැකි යැයි මම විශ්වාස කරමි.
මෙහි සිටින බොහෝ අය මෙන් මම භාජන අපනයනය කිරීමට සූර්යග්රහණය භාවිතා කරමි: (ගොනුව-> අපනයනය -> 'ධාවනය කළ හැකි JAR ගොනුව'). 'පුස්තකාල හැසිරවීම' සූර්යග්රහණය (ජූනෝ) පිරිනැමීම් සඳහා විකල්ප තුනක් තිබේ:
opt1: "Extract required libraries into generated JAR"
opt2: "Package required libraries into generated JAR"
opt3: "Copy required libraries into a sub-folder next to the generated JAR"
සාමාන්යයෙන් මම opt2 භාවිතා කරමි (සහ opt1 අනිවාර්යයෙන්ම කැඩී යයි), කෙසේ වෙතත් මම භාවිතා කරන එක් භාජනයක ස්වදේශීය කේතය, ඔබ එම විකල්පය තෝරාගැනීමේදී සූර්යග්රහණය උත්තේජනය කරන හුරුබුහුටි “ජරින්ජාර්” උපක්රමයෙන් බිඳීම් සොයා ගතිමි. මට opt3 අවශ්ය බව වටහා ගැනීමෙන් පසුවත්, මෙම StackOverflow ප්රවේශය සොයාගැනීමෙන් පසුවත්, මගේ ප්රධාන සූර්යග්රහණයෙන් පිටත දියත් කරන්නේ කෙසේදැයි සොයා ගැනීමට මට තව කාලයක් ගත විය, එබැවින් මෙන්න මට වැඩ කළ දේ, එය අනෙක් අයට ප්රයෝජනවත් බැවින් ...
ඔබ ඔබේ භාජනය නම් කළේ නම්: "fooBarTheJarFile.jar" සහ සියල්ල dir වෙත අපනයනය කිරීමට සකසා ඇත: "/ theFully / qualPath / toYourChosenDir".
(එහි අර්ථය 'අපනයන ගමනාන්තය' ක්ෂේත්රය කියවනු ඇත: '/ TheFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile.jar')
ඔබ අවසන් වූ පසු, ඔබ සූර්යග්රහණය සොයාගනු ඇති අතර පසුව සියලුම පුස්තකාල එම අපනයන නාමාවලිය තුළ ඇති 'fooBarTheJarFile_lib' නම් ෆෝල්ඩරයකට දමනු ඇත.
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile.jar
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/SomeOtherJar01.jar
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/SomeOtherJar02.jar
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/SomeOtherJar03.jar
/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/SomeOtherJar04.jar
එවිට ඔබට ඔබේ පද්ධතියේ ඕනෑම තැනක සිට දියත් කළ හැකිය:
java -classpath "/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/*" -jar /theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile.jar package.path_to.the_class_with.your_main.TheClassWithYourMain
(ජාවා නිව්බීස් සඳහා: 'පැකේජය. Java 'ඔබ ජාවා පිටත සිට ධාවනය කිරීමට කැමති බව)
අවධානයට ලක්විය යුතු අවාසිය නම්, ඔබ ප්රකාශිත පන්ති මාවතේ ඇති භාජන ලැයිස්තුව තුළ 'fooBarTheJarFile.jar' තිබීම ප්රමාණවත් නොවන බවයි. ඔබ පැහැදිලිවම '-ජාර්' ප්රකාශ කළ යුතු අතර, එම භාජනයේ පිහිටීම නැවත ප්රකාශ කරන්න.
උදා: මෙය කැඩී යයි:
java -classpath "/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile.jar;/theFully/qualifiedPath/toYourChosenDir/fooBarTheJarFile_lib/*" somepackages.inside.yourJar.leadingToTheMain.TheClassWithYourMain
සාපේක්ෂ මාර්ග සමඟ නැවත ආරම්භ කරන ලදි:
cd /theFully/qualifiedPath/toYourChosenDir/;
BREAKS: java -cp "fooBarTheJarFile_lib/*" package.path_to.the_class_with.your_main.TheClassWithYourMain
BREAKS: java -cp ".;fooBarTheJarFile_lib/*" package.path_to.the_class_with.your_main.TheClassWithYourMain
BREAKS: java -cp ".;fooBarTheJarFile_lib/*" -jar package.path_to.the_class_with.your_main.TheClassWithYourMain
WORKS: java -cp ".;fooBarTheJarFile_lib/*" -jar fooBarTheJarFile.jar package.path_to.the_class_with.your_main.TheClassWithYourMain
(ජාවා අනුවාදය "1.6.0_27" භාවිතා කිරීම; උබුන්ටු 12.04 හි OpenJDK 64-Bit Server VM හරහා)