বেশ কয়েক দিন আগে, আমি ঠিক তোমার মতো একই প্রশ্নের সাথে দেখা করেছি। সমস্ত কোড আমার স্থানীয় মেশিনে ভাল চলে, তবে ত্রুটি সরিয়ে দেয় (নোক্লাসডিফাউন্ড এবং আরম্ভ)। সুতরাং আমি আমার সমাধান পোস্ট করি, তবে কেন জানি না, আমি কেবল একটি সম্ভাবনার অগ্রগতি করি। আমি আশা করি কেউ জানে যে এটি ব্যাখ্যা করবে। @ জন ভিন্ট প্রথমত, আমি আপনাকে আমার সমস্যাটি দেখাব। আমার কোডে স্ট্যাটিক ভেরিয়েবল এবং স্ট্যাটিক ব্লক উভয়ই রয়েছে। আমি যখন প্রথম এই সমস্যার মুখোমুখি হয়েছিলাম, আমি জন ভিন্টের সমাধানটি চেষ্টা করেছিলাম, এবং ব্যতিক্রমটি ধরার চেষ্টা করেছি। তবে আমি কিছুই ধরলাম না। সুতরাং আমি ভেবেছিলাম এটি কারণ স্থির পরিবর্তনশীল (তবে এখন আমি জানি তারা একই জিনিস) এবং এখনও কিছুই খুঁজে পেল না। সুতরাং, আমি লিনাক্স মেশিন এবং আমার কম্পিউটারের মধ্যে পার্থক্য সন্ধান করার চেষ্টা করি। তারপরে আমি দেখতে পেলাম যে এই সমস্যাটি তখনই ঘটে যখন একটি প্রক্রিয়ায় বেশ কয়েকটি থ্রেড চলবে (উপায় দ্বারা, লিনাক্স মেশিনটিতে ডাবল কোর এবং ডাবল প্রক্রিয়া রয়েছে)। এর অর্থ যদি দুটি কার্য থাকে (উভয়ই কোডটি ব্যবহার করে যা স্ট্যাটিক ব্লক বা ভেরিয়েবলগুলি ব্যবহার করে) একই প্রক্রিয়াতে চালিত হয় তবে এটি ভুল হয়ে যায়, তবে যদি তারা বিভিন্ন প্রক্রিয়াতে চালায় তবে উভয়ই ঠিক আছে। লিনাক্স মেশিনে, আমি ব্যবহার করি
mvn -U clean test -Dtest=path
কোনও টাস্ক চালানোর জন্য, এবং কারণ আমার স্ট্যাটিক ভেরিয়েবলটি একটি ধারক শুরু করা (বা হতে পারে আপনি একটি নতুন ক্লাসলোডার শুরু করেছিলেন), সুতরাং এটি জেভিএম থামার আগ পর্যন্ত থাকবে এবং জেভিএম কেবল তখনই থামবে যখন একটি প্রক্রিয়াতে সমস্ত কাজ বন্ধ হয়ে যায়। প্রতিটি টাস্ক একটি নতুন ধারক (বা ক্লাসলোডার) শুরু করবে এবং এটি জেভিএমকে বিভ্রান্ত করে তোলে। ফলস্বরূপ, ত্রুটি ঘটে। তাহলে, কীভাবে এটি সমাধান করবেন? আমার সমাধানটি হল মাভেন কমান্ডে একটি নতুন কমান্ড যুক্ত করা এবং প্রতিটি কাজ একই পাত্রে করা।
-Dxxx.version=xxxxx #sorry can't post more
হতে পারে আপনি ইতিমধ্যে এই সমস্যাটি সমাধান করেছেন, তবে এখনও আশা করি এটি একই সমস্যা পূরণকারী অন্যদের সহায়তা করবে।