জাভা হটস্পট (টিএম) 64৪-বিট সার্ভার ভিএম সতর্কতা: ম্যাক্সপার্মসাইজ উপেক্ষা করা বিকল্প


133

মাভেনের সাথে একটি জাভা 8 প্রকল্প তৈরি করার সময়:

mvn clean package

আমি এই বার্তাটি পেয়েছি:

জাভা হটস্পট (টিএম) 64-বিট সার্ভার ভিএম সতর্কতা: ম্যাক্সপার্মসাইজ = 128 এম বিকল্প উপেক্ষা করছে; সমর্থন 8.0 সালে সরানো হয়েছে

এই বার্তাটি কীভাবে সরাবেন?



1
আপনার কাছে ইতিমধ্যে আইডিইএ চলার একটি উদাহরণ থাকতে পারে। [1]: stackoverflow.com/a/20553943/3741698
ডেভিড Hackro

উত্তর:


163

জেডিকে 8-র জন্য সামঞ্জস্যতা গাইড বলছে যে জাভা 8-তে কমান্ড লাইন পতাকা MaxPermSizeসরানো হয়েছে। কারণ হ'ল স্থায়ী প্রজন্মকে হটস্পটের হিপ থেকে সরানো হয়েছিল এবং দেশীয় স্মৃতিতে স্থানান্তরিত করা হয়েছিল। সুতরাং এই বার্তাটি সরিয়ে ফেলতে MAVEN_OPTS পরিবেশগত ব্যবহারকারী পরিবর্তনশীল:

জাভা 7

MAVEN_OPTS -Xmx512m -XX:MaxPermSize=128m

জাভা 8

MAVEN_OPTS -Xmx512m

13
এবং কারণটি হ'ল পুরো পার্মজেন স্পেসটি ওরাকলের জেআরই 8, এএফআইএকে সরিয়ে দেওয়া হয়েছে।
পুস

1
কেউ যদি এটি করতে হয় তা না জানেন - sudo gedit ~/.profileতবে উত্তর থেকে লাইন যুক্ত করুন এবং ফাইলটি সংরক্ষণ করুন।
gotqn

আমার কাছে এই বিকল্পটি ~ / .bashrc ফাইলে সেট করা আছে
পাকা

@gotqn আপনি কেন sudoনিজের বাড়ির ফোল্ডারে কোনও ফাইল সম্পাদনা করবেন ? আমার কাছে খুব অদ্ভুত অনুশীলন বলে মনে হচ্ছে।
প্রতি লুন্ডবার্গ

22

JDK 8 হটস্পট জেভিএম এখন বর্গ মেটাডেটা প্রতিনিধিত্ব জন্য স্থানীয় মেমরির ব্যবহার করছে ও বলা হয় Metaspace

স্থায়ী প্রজন্ম সরানো হয়েছে। PermSizeএবং MaxPermSizeউপেক্ষা করা হয় এবং একটি সতর্কবার্তা জারি করা হয় যদি তারা কমান্ড লাইন উপস্থিত হয়।


এটি কেবল পরোক্ষভাবে প্রশ্নের উত্তর দেয় ... উত্তরটি হ'ল সতর্কতা অপসারণ করতে পতাকাগুলি সরান "। হিসাবে অন্তর্দৃষ্টিপূর্ণ মন্তব্য @ দ্বারা ওহদ-স্নাইডার প্রকাশ করেছেন, সেখানে নেই এক তাদের জন্য একক প্রতিস্থাপন।
সংযোগ

10
-XX:MaxPermSize=size

সর্বাধিক স্থায়ী প্রজন্মের স্থান আকার নির্ধারণ করে (বাইটে)। এই বিকল্পটি জেডিকে 8-তে অবহেলা করা হয়েছিল এবং -XX:MaxMetaspaceSizeবিকল্পটি ছাড়িয়ে গেছে ।

-XX:PermSize=size

স্থায়ী প্রজন্মের জন্য বরাদ্দকৃত স্থান (বাইটে) সেট করে যা কোনও আবর্জনা সংগ্রহকে অতিক্রম করলে এটি ট্রিগার করে। এই বিকল্পটি জেডিকে 8-তে অবহেলা করা হয়েছিল এবং -XX:MetaspaceSizeবিকল্পটি ছাড়িয়ে গেছে ।


12
আমি এই downvoted করা হয়েছে কারণ এটি বোঝা যে আপনার আগের ব্যবহারের সুইচ উচিত মনে MaxPermGenসঙ্গে MaxMetaSpaceSize, যা বিভ্রান্তিকর হয় যেহেতু তাদের ভূমিকা কার্যত বিপরীত হয়েছে। জাভা 8 এর পূর্বে 8 ক্লাসের মেটাডেটা স্পেস PermGen এ বাস করেছিল যা 32 / 64MB দ্বারা সীমাবদ্ধ MaxPerGenছিল এবং এটি বাড়ানোর জন্য ব্যবহৃত হত । জাভা 8 থেকে শুরু করে, পার্মগেন আর নেই এবং শ্রেণি মেটাডেটা স্থান সীমাহীন, সুতরাং MaxMetaspaceআকারটি এটি হ্রাস করার জন্য ব্যবহৃত হয় । আরও তথ্যের জন্য দেখুন: stackoverflow.com/a/31463972/67824
ওহাদ স্নাইডার

8

JBoss EAP 6.4 এ সার্ভারে ডান ক্লিক করুন এবং ভিএম যুক্তির অধীনে লঞ্চ কনফিগারেশনটি খুলুন

{-Dprogram.name=JBossTools: jboss-eap" -server -Xms1024m -Xmx1024m -XX:MaxPermSize=256m}

এটি আপডেট করুন

{-Dprogram.name=JBossTools: JBoss 6.4" -server -Xms512m -Xmx512m}

এই আপনার সমস্যার সমাধান হবে.


1

জাভা ৮ দিয়ে লিনাক্সে কমান্ড লাইন এমভিএন (সংস্করণ ৩.৩.৩) চালানোর সময় আমি অনুরূপ বার্তা পেয়েছি 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"

ব্যাপারতি পুনঃসংশোধিত


1

যদি কেউ এখনও এই ধরণের বার্তা পায়। এটি ঘটবে কারণ আপনি মাভেন প্রকল্প চলাকালীন 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>

-1

দয়া করে এই সমস্যাটি সমাধান করার জন্য আমরা সবেমাত্র জেডিকে ইনস্টল করে রেখেছি

standalone.conf

ফাইল যা JBoss \ ওয়াইল্ডফ্লাই সার্ভারের বিন ফোল্ডারের অধীনে । এটি সমাধানের জন্য আমরা নিম্নলিখিত পদক্ষেপগুলি করি:

  1. স্ট্যান্ডলোন.কম ফাইল খুলুন যা JBoss_or_wildfly \ বিন ফোল্ডারের অধীনে
  2. এই ফাইলের মধ্যে # জেভিএহোম পাঠ্যের সন্ধান করুন।
  3. # টি অক্ষর মুছে ফেলুন এবং আপনার ইনস্টলিত জেডিকে পাথ JAVA_Home = "সি: \ প্রোগ্রাম ফাইলগুলি \ জাভা \ jdk1.8.0_65" হিসাবে সেট করুন আশা করি এটি আপনার সমস্যার সমাধান করবে ধন্যবাদ

আসল সমস্যাটি একটি মাভেন প্রকল্পে। জেবিসের সাথে এর কোনও যোগসূত্র নেই।
বরিস

-5

গ্রহন ব্যবহারকারীদের জন্য ...

রান ক্লিক করুন -> রান কনফিগারেশন -> হয় -> 1.6 বা 1.7 এর জন্য বিকল্প জেআরই সেট করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.