উইন্ডোজে মাভেন 2 এর নিচে জাভা হ্যাপ স্পেস সেট করা হচ্ছে


91

আমার প্রকল্পটি তৈরির সময় আমি এই বার্তাটি পাই

java.lang.OutOfMemoryError: জাভা হ্যাপ স্পেস

আমি কীভাবে গাদা স্থান বাড়িয়ে দেব, আমি 8 গিগাবাইট বা র্যাম পেয়েছি তার অসম্ভব যেটি ম্যাভেনরা এত বেশি পরিমাণে গ্রাস করেছিল, আমি এটি পেয়েছি http://vikashazrati.wordpress.com/2007/07/26/quicktip-how-to-increase-the -জভা-হ্যাপ-মেমরি-মেভেন-টু-অন-লিনাক্স / কীভাবে এটি লিনাক্সে করবেন, তবে আমি উইন্ডোতে রয়েছি 7.. আমি কীভাবে জানালার নীচে জাভা হ্যাপের স্থান পরিবর্তন করতে পারি?


আমি ধরে নিয়েছি আপনি উইন্ডোজ 64৪ বিট সংস্করণে আছেন? যদি তা না হয় তবে আপনি গাদা আকার হিসাবে 1.5G এর বেশি কোনও নির্দিষ্ট করতে যাচ্ছেন না, অন্যান্য 0.5G উইন্ডোজ আপনাকে সরাসরি ব্যবহার করতে দেয় জেভিএম দ্বারা প্রয়োজনীয় হতে চলেছে। উইন্ডোজগুলি কেবল কার্নাল মোড কোডের জন্য 1 জি এবং ব্যবহারকারী মোড কোডের জন্য 3 জি ব্যবহার করার বিকল্প রয়েছে, তবে সূর্য জেভিএম আপনাকে এটি ব্যবহার করতে দেয় না।
ভিকির্ক

@ উইকির্ক আমি উইন্ডোজের
bit৪

4
আপনি কি JVM এর একটি 64-বিট সংস্করণ ব্যবহার করছেন? এটি জেডিকে
পাওয়ারলর্ড

উত্তর:


117

MAVEN_OPTSউদাহরণস্বরূপ পরিবেশের পরিবর্তনশীলটি সেট করতে হবে MAVEN_OPTS=-Xmx1024mmaxmemপমটিতে কনফিগারেশন কেবল তখনই প্রযোজ্য যখন আপনি কম্পাইলার প্লাগইনটিকে javacএকটি নতুন জেভিএম তে কাঁটাচামচ সেট করেন । অন্যথায় প্লাগইনটি মাভেনের একই ভিএম এর অভ্যন্তরে চলে এবং এইভাবে মেমোরির মধ্যে দিয়ে কমান্ড লাইনে পাস হয় MAVEN_OPTS

উইন্ডোজ 7 এর অধীনে MAVEN_OPTS সেট করতে:

  1. আমার কম্পিউটারে ডান ক্লিক করুন এবং বৈশিষ্ট্য নির্বাচন করুন (কীবোর্ড শর্টকাট প্রেস Windows+ Pause/Break)
  2. উন্নত সিস্টেমের বৈশিষ্ট্যগুলি প্রদর্শন করতে সিস্টেম প্রোপার্টিগুলির বাম নেভিগেশনে অবস্থিত উন্নত সিস্টেম সেটিংস লিঙ্কটি ক্লিক করুন
  3. উন্নত ট্যাবে যান এবং উন্নত সিস্টেম বৈশিষ্ট্য কনফিগারেশন উইন্ডোর নীচে অবস্থিত পরিবেশ পরিবর্তনগুলি বোতামটি ক্লিক করুন
  4. একটি তৈরি করুন নতুন ব্যবহারকারী পরিবর্তনশীল, সেট চলক নাম MAVEN_OPTS সেট করা এবং চলক মান থেকে -Xmx1024m(বা তার বেশি)

একটি নতুন কমান্ড উইন্ডো খুলুন এবং রান করুন mvn


4
এটি কি আমার বিল্ডের গতিতে কোনও প্রভাব ফেলবে? আমার মেভেন বিল্ডটিকে আরও মেমরি বরাদ্দ করার সাথে সাথে এটি বাড়ানোর কোনও পরামর্শ নেই?
মহেন্দ্রন

45

আপনি যদি নিশ্চিত ফায়ার (বা ফেইলসেফ) জুনিত পরীক্ষা চলাকালীন গাদা স্থান থেকে সরে চলেছেন তবে MAVEN_OPTS পরিবর্তন করা আপনাকে সাহায্য করতে পারে না। সমস্যাটি স্থির করা এই পোস্টটি না পাওয়া পর্যন্ত আমি ভাগ্য না নিয়ে MAVEN_OPTS এ বিভিন্ন কনফিগারেশন চেষ্টা করে চলেছি ।

মূলত JUnits তাদের নিজস্ব পরিবেশে কাঁটাচামচ করে এবং MAVEN_OPTS এ সেটিংস উপেক্ষা করে। JUnits- এর জন্য আরও মেমরি যুক্ত করতে আপনাকে আপনার পোমে নিশ্চিতফায়ার কনফিগার করতে হবে।

আশা করি এটি অন্য কাউকে কিছুটা সময় বাঁচাতে পারে!


সম্পাদনা করুন: লিথটি কিছুদিন ভেঙে যাওয়ার পরে কিথ চ্যাপম্যানের ব্লগ থেকে সমাধানটি অনুলিপি করা হচ্ছে :

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <forkMode>pertest</forkMode> 
    <argLine>-Xms256m -Xmx512m</argLine>
    <testFailureIgnore>false</testFailureIgnore> 
    <skip>false</skip> 
    <includes> 
      <include>**/*IntegrationTestSuite.java</include>
    </includes>
  </configuration>
</plugin>

আপডেট ( 5/31/2017 ): এটি প্রকাশ করার জন্য @ জোহনস্টোষকে ধন্যবাদ - যখন আমি এই উত্তরটি এখানে রেখেছি তখন থেকে নিশ্চিত অগ্নিকাণ্ড কিছুটা বিকশিত হয়েছিল। এখানে তাদের ডকুমেন্টেশনের একটি লিঙ্ক এবং একটি আপডেট কোড নমুনা (আর্গ লাইন এখনও এই প্রশ্নের গুরুত্বপূর্ণ অংশ):

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.20</version>
    <configuration>
        <forkCount>3</forkCount>
        <reuseForks>true</reuseForks>
        <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
        <systemPropertyVariables>
            <databaseSchema>MY_TEST_SCHEMA_${surefire.forkNumber}</databaseSchema>
        </systemPropertyVariables>
        <workingDirectory>FORK_DIRECTORY_${surefire.forkNumber}</workingDirectory>
    </configuration>
  </plugin>

এটা আমার কিছু সময় বাঁচাতে পারে! ধন্যবাদ! দুর্ভাগ্যক্রমে আমি কেবল একবার উঁচুতে পারি! :)
javanna

এটি সত্যিকারের খাঁটি শৈলীতে অন্যদের মধ্যে সর্বাধিক সহায়ক উত্তর। ধন্যবাদ!
Andremoniy

এটি প্রশ্নের আসল উত্তর
জোনাথন ল্যান্ড্রাম

4
নিশ্চিত দফায় দস্তাবেজগুলি দেখুন। নিশ্চিত আগুনের সংস্করণগুলি 2.14 এর আগে পরামিতি ফোরকোডকে কাঁটাচামচ কনফিগার করতে ব্যবহার করেছিল। যদিও প্যারামিটারটি এখনও পশ্চাদপটে সামঞ্জস্যের জন্য সমর্থিত, ব্যবহারকারীরা তাদের কনফিগারেশনটি মাইগ্রেট করতে এবং পরিবর্তে ফর্ককাউন্ট এবং পুনঃব্যবহার ব্যবহার করতে উত্সাহিত হয়।
জনস্টোশ

21

এটি রপ্তানির পরিবর্তে এসইটি বাদে একই কমান্ড হওয়া উচিত

  • MAVEN_OPTS = -Xmx512m সেট করে এটি 512Mb হিপ দেয়
  • MAVEN_OPTS = -Xmx2048m সেট করে এটি 2 জিবি হিপ দেবে

আমি সম্মত হই যে এটি একই কমান্ড হওয়া উচিত, তবে এটি সত্য বক্তব্য দেয় না, কারণC:\my_project>MAVEN_OPTS=-Xmx512m 'MAVEN_OPTS' is not recognized as an internal or external command, operable program or batch file.
গ্যান্ডালফ স্টর্মক্রো

গ্লোকোডার কিছুটা ভুল। আপনার ভেরিয়েবলগুলি রফতানি করার দরকার নেই, তবে সেগুলির জন্য কোনও মান নির্ধারণের জন্য আপনার সেট সেট দরকার।
জেরেমিপ

আপনি যদি প্রতিটি বিল্ডের জন্য একই মান ব্যবহার করতে চান তবে আপনি MAVEN_OPTS কে উইন্ডোজ পরিবেশের পরিবর্তনশীল হিসাবেও সেট করতে পারেন।
ডিজিটালজেল

@ গ্যান্ডালফ আপনার সামনে সেটটি স্থাপন করা দরকার @ জেরেমি হ্যাঁ, তাই কেন এটি রফতানির পরিবর্তে সেট ব্যবহার করতে বলে
কর্সিকা

9

ম্যাকটিতে : এর পরিবর্তে JAVA_OPTSএবং এর পরিবর্তে MAVEN_OPTS_JAVA_OPTIONS ব্যবহার করুন। এইটা কাজ করে!


এটি উইন্ডোতেও কাজ করে। এটি গ্রহণের জন্য পরিবেশের পরিবর্তনশীল হিসাবে মেলকে রান রক্ষণের কনফিগারেশন হিসাবে যুক্ত করুন, এম 2 ই থেকে চালানো পরীক্ষাগুলি আর পারমজেন ত্রুটি দেয় না
ফেডারব

3

কোন ভাগ্য সঙ্গে MAVEN_OPTS পরিবর্তনশীল ব্যবহার করার চেষ্টা করার পর, আমি এই জুড়ে এসেছিল সাইটে যা আমাকে কাজ করেন। তাই আমাকে যা করতে হয়েছিল তা হল ডিফল্ট ভিএম বিকল্পগুলিতে -Xms128m -Xmx1024m যুক্ত করা এবং এটি কার্যকর হয়েছিল worked

Eclipse এ পরিবর্তন করতে, উইন্ডো -> পছন্দসমূহ -> জাভা -> ইনস্টল করা জেআরইতে যান। পরীক্ষিত জেআরই / জেডিকে নির্বাচন করুন এবং সম্পাদনা ক্লিক করুন।


0

উইন্ডোতে:

একটি পরিবেশগত পরিবর্তনশীল যুক্ত করুন (সিস্টেম এবং ব্যবহারকারীর উভয় ভেরিয়েবলগুলিতেই আমার কিছু অদ্ভুত সমস্যা রয়েছে যে এটি বিভিন্ন স্থান থেকে বৈচিত্র্য লাভ করে, তাই আমি তাদের উভয়টিতেই যুক্ত করি)।

এর নাম দিন MAVEN_OPTS।

মান হবে: -Xms1024m -Xmx3000m -XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled

সংখ্যাগুলি আলাদা হতে পারে, এগুলিকে আপনার মেমের আকারের সাথে তুলনা করুন।

আমার সেই সমস্যা ছিল এবং এটি এটিকে ঠিক করে দিয়েছে, আর কিছুই নয়!


0

এটি কাজ করেছিল - Eclipse এ পরিবর্তন করতে, উইন্ডো -> পছন্দসমূহ -> জাভা -> ইনস্টল করা JREs এ যান। পরীক্ষিত জেআরই / জেডিকে নির্বাচন করুন এবং সম্পাদনা ক্লিক করুন।

ডিফল্ট ভিএম যুক্তিগুলি = -Xms128m -Xmx1024 মি


-7

আপনি 2 টি বিকল্পের সন্ধান করছেন java:

  • -এক্সএমএক্স সর্বোচ্চ স্তরের আকার ap
  • -এক্সএম শিকড় আকার শুরু

এগুলিকে javaএক্সিকিউটেবলের আপনার কমান্ড লাইনে অনুরোধ করুন :

java -Xms512M -Xmx1024M my.package.MainClass

মনে রাখবেন যে আপনি প্রয়োগের উপর নির্ভর করে প্রারম্ভিক এবং সর্বোচ্চ হিপ আকারগুলি একই হতে পারেন, কারণ এটি রানটাইমের সময় হিপগুলির পুনরায় আকার দেওয়া এড়ায় (যা প্রতিক্রিয়াশীল হওয়া অ্যাপ্লিকেশনগুলিতে সময় নিতে পারে)। হিপটির আকার পরিবর্তন করতে প্রচুর পরিমাণে বস্তু স্থানান্তরিত করা এবং বুককিপিংয়ের কাজটি আবারও করাতে পারে।

প্রতিদিনের প্রকল্পগুলির জন্য, আপনার মনে হয় যা যথেষ্ট ভাল তা করুন। সাহায্যের জন্য প্রোফাইল।


4
ইবেলিসল অনুসারে, এই বিকল্পগুলি মোটেও কাজ করবে না আপনি, মাভেন ব্যবহার করে, কমপক্ষে এটি "-D" সহ একটি মাভেন বিকল্প হিসাবে নির্দিষ্ট করতে হবে তবে আমরা জাভা কমান্ড না যা আমরা বলছি
ফ্রেণ্ডেভেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.