মাভেনের সাথে একটি জাভা 8 প্রকল্প তৈরি করার সময়:
mvn clean package
আমি এই বার্তাটি পেয়েছি:
জাভা হটস্পট (টিএম) 64-বিট সার্ভার ভিএম সতর্কতা: ম্যাক্সপার্মসাইজ = 128 এম বিকল্প উপেক্ষা করছে; সমর্থন 8.0 সালে সরানো হয়েছে
এই বার্তাটি কীভাবে সরাবেন?
মাভেনের সাথে একটি জাভা 8 প্রকল্প তৈরি করার সময়:
mvn clean package
আমি এই বার্তাটি পেয়েছি:
জাভা হটস্পট (টিএম) 64-বিট সার্ভার ভিএম সতর্কতা: ম্যাক্সপার্মসাইজ = 128 এম বিকল্প উপেক্ষা করছে; সমর্থন 8.0 সালে সরানো হয়েছে
এই বার্তাটি কীভাবে সরাবেন?
উত্তর:
জেডিকে 8-র জন্য সামঞ্জস্যতা গাইড বলছে যে জাভা 8-তে কমান্ড লাইন পতাকা MaxPermSize
সরানো হয়েছে। কারণ হ'ল স্থায়ী প্রজন্মকে হটস্পটের হিপ থেকে সরানো হয়েছিল এবং দেশীয় স্মৃতিতে স্থানান্তরিত করা হয়েছিল। সুতরাং এই বার্তাটি সরিয়ে ফেলতে MAVEN_OPTS পরিবেশগত ব্যবহারকারী পরিবর্তনশীল:
জাভা 7
MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m
জাভা 8
MAVEN_OPTS -Xmx512m
sudo gedit ~/.profile
তবে উত্তর থেকে লাইন যুক্ত করুন এবং ফাইলটি সংরক্ষণ করুন।
sudo
নিজের বাড়ির ফোল্ডারে কোনও ফাইল সম্পাদনা করবেন ? আমার কাছে খুব অদ্ভুত অনুশীলন বলে মনে হচ্ছে।
JDK 8 হটস্পট জেভিএম এখন বর্গ মেটাডেটা প্রতিনিধিত্ব জন্য স্থানীয় মেমরির ব্যবহার করছে ও বলা হয় Metaspace ।
স্থায়ী প্রজন্ম সরানো হয়েছে। PermSize
এবং MaxPermSize
উপেক্ষা করা হয় এবং একটি সতর্কবার্তা জারি করা হয় যদি তারা কমান্ড লাইন উপস্থিত হয়।
-XX:MaxPermSize=size
সর্বাধিক স্থায়ী প্রজন্মের স্থান আকার নির্ধারণ করে (বাইটে)। এই বিকল্পটি জেডিকে 8-তে অবহেলা করা হয়েছিল এবং -XX:MaxMetaspaceSize
বিকল্পটি ছাড়িয়ে গেছে ।
-XX:PermSize=size
স্থায়ী প্রজন্মের জন্য বরাদ্দকৃত স্থান (বাইটে) সেট করে যা কোনও আবর্জনা সংগ্রহকে অতিক্রম করলে এটি ট্রিগার করে। এই বিকল্পটি জেডিকে 8-তে অবহেলা করা হয়েছিল এবং -XX:MetaspaceSize
বিকল্পটি ছাড়িয়ে গেছে ।
MaxPermGen
সঙ্গে MaxMetaSpaceSize
, যা বিভ্রান্তিকর হয় যেহেতু তাদের ভূমিকা কার্যত বিপরীত হয়েছে। জাভা 8 এর পূর্বে 8 ক্লাসের মেটাডেটা স্পেস PermGen এ বাস করেছিল যা 32 / 64MB দ্বারা সীমাবদ্ধ MaxPerGen
ছিল এবং এটি বাড়ানোর জন্য ব্যবহৃত হত । জাভা 8 থেকে শুরু করে, পার্মগেন আর নেই এবং শ্রেণি মেটাডেটা স্থান সীমাহীন, সুতরাং MaxMetaspace
আকারটি এটি হ্রাস করার জন্য ব্যবহৃত হয় । আরও তথ্যের জন্য দেখুন: stackoverflow.com/a/31463972/67824
জাভা ৮ দিয়ে লিনাক্সে কমান্ড লাইন এমভিএন (সংস্করণ ৩.৩.৩) চালানোর সময় আমি অনুরূপ বার্তা পেয়েছি ma
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
যেখানে ডিফল্টরূপে V MAVEN_PROJECTBASEDIR হ'ল আপনার হোম ডিরেক্টরি। সুতরাং দুটি জায়গা আপনি একবার দেখতে পারেন, প্রথমে ফাইল $ MAVEN_PROJECTBASEDIR / .mvn / jvm.config যদি তা বিদ্যমান থাকে। দ্বিতীয়ত ফাইলগুলি সম্ভবত পরিবেশের পরিবর্তনশীল MAVEN_OPTS সেট আপ করুন। প্রার্থী ফাইল হ'ল .bashrc, .Bash_profile, .profile এবং তাদের দ্বারা অন্তর্ভুক্ত ফাইলগুলি যেমন / ইত্যাদি / প্রোফাইল, /etc/bash.bashrc
আমি অবস্থিত
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
আমার সিস্টেমে .brcrc এ, এটিকে পরিবর্তন করুন
export MAVEN_OPTS="-Xmx512m"
ব্যাপারতি পুনঃসংশোধিত
যদি কেউ এখনও এই ধরণের বার্তা পায়। এটি ঘটবে কারণ আপনি মাভেন প্রকল্প চলাকালীন JVM যুক্তি যুক্ত করেন। কারণ এটি ম্যাভেনের সাথে সম্পর্কিত আপনি pom.xml
নিজের প্রকল্পে আপনার ফাইলটি পরীক্ষা করতে পারেন ।
এই লাইনটি সন্ধান করুন <argLine>...</argLine>
, আমার প্রকল্পে আমারও নীচে যুক্তি রয়েছে
<argLine>-Xmx1024m -XX:MaxPermSize=512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
আপনার MaxPermSize
যুক্তিটি হিসাবে প্রতিস্থাপন করা উচিত -Xms123m -Xmx123m
, যেহেতু MaxPermSize
ইতিমধ্যে অবহেলিত এবং আপনার জেভিএম কনফিগারেশনে কোনও প্রভাব ফেলবে না:
<argLine>-Xms512m -Xmx512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1</argLine>
দয়া করে এই সমস্যাটি সমাধান করার জন্য আমরা সবেমাত্র জেডিকে ইনস্টল করে রেখেছি
standalone.conf
ফাইল যা JBoss \ ওয়াইল্ডফ্লাই সার্ভারের বিন ফোল্ডারের অধীনে । এটি সমাধানের জন্য আমরা নিম্নলিখিত পদক্ষেপগুলি করি:
গ্রহন ব্যবহারকারীদের জন্য ...
রান ক্লিক করুন -> রান কনফিগারেশন -> হয় -> 1.6 বা 1.7 এর জন্য বিকল্প জেআরই সেট করুন