গ্রহন - java.lang.ClassNotFoundException


96

যখন আমার জুনিট-টেস্টটি গ্রহণের বাইরে শুরু করার চেষ্টা করা হচ্ছে তখন আমি একটি "ClassNotFoundException" পাই। কনসোল থেকে "এমভিএন পরীক্ষা" চালানোর সময় - সবকিছু ঠিকঠাক কাজ করে। এছাড়াও, Eclipse- এ কোনও সমস্যা নেই বলে জানা গেছে।

আমার প্রকল্পের কাঠামোটি নিম্নলিখিত:

  • মূল প্রকল্প (পম-প্যাকেজিং)
    • ওয়েব প্রকল্প (যুদ্ধ-প্যাকেজিং - আমার জুনিট পরীক্ষা এখানে রয়েছে)
    • ফ্লেক্স প্রকল্প
    • কনফিগারেশন প্রকল্প

সম্পাদনা: ক্লাসটি কীভাবে পাওয়া যাবে না? এটি একটি সাধারণ হ্যালোওয়ার্ল্ড-অ্যাপ্লিকেশন যার কোনও বিশেষ লাইব্রেরি নেই।

এখানে আমার জুনিতের রান-কনফিগারেশন রয়েছে: Alt পাঠ্য http://www.walkner.biz/_temp/runconfig.png


টেস্টক্লাস (তবে আমি যেমন বলেছি; এটি কোনও সাধারণ হ্যালোওয়ার্ল্ডের সাথেও কাজ করে না ...):

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import biz.prognoserechnung.domain.User;
import biz.prognoserechnung.domain.UserRepository;
import biz.prognoserechnung.domain.hibernate.UserHibernateDao;

public class UserDaoTest {
/**
 * the applicationcontext.
 */
private ApplicationContext ctx = null;

/**
 * the user itself.
 */
private User record = null;

/**
 * Interface for the user.
 */
private UserRepository dao = null;

@Before
public void setUp() throws Exception {
String[] paths = { "WEB-INF/applicationContext.xml" };
ctx = new ClassPathXmlApplicationContext(paths);
dao = (UserHibernateDao) ctx.getBean("userRepository");
}

@After
public void tearDown() throws Exception {
dao = null;
}

@Test
public final void testIsUser() throws Exception {
Assert.assertTrue(dao.isUser("John", "Doe"));
}

@Test
    public final void testIsNoUser() throws Exception {
    Assert.assertFalse(dao.isUser("not", "existing"));
        Assert.assertFalse(dao.isUser(null, null));
        Assert.assertFalse(dao.isUser("", ""));
    }
}

4
JUnit অন্তর্ভুক্ত না করে একটি সাধারণ হ্যালোওয়ার্ল্ড ক্লাস চালানোর চেষ্টা করার সময় আমি একই ত্রুটি পেয়েছি ... আরও ঠিক: java.lang.NoClassDefFoundError:
হ্যালো ওয়ার্ল্ড এর

ক্লাসে প্রতিফলিত করার চেষ্টা করার সময় ClassNotFoundException নিক্ষেপ করা হয়। আপনি যখন কোনও সাধারন পদ্ধতিতে কলটিতে ক্লাসটি ব্যবহার করার চেষ্টা করছেন তখন NoClassDefFoundError নিক্ষেপ করা হয়।
akf

আপনি কি আপনার পরীক্ষা ক্লাসের জন্য কোডটি প্রদর্শন করতে পারেন?
akf

আপনি কি স্বয়ংক্রিয়ভাবে বিল্ড চালু বা বন্ধ করেছেন?
জন

বিল্ড স্বয়ংক্রিয়ভাবে চালু আছে
swalkner

উত্তর:


196

আমি বেশ কয়েকবার এই পরিস্থিতিটি অতিক্রম করেছি এবং অনেক চেষ্টা করার পরেও আমি সমাধানটি পেয়েছি।

আপনার প্রকল্পের বিল্ড-পাথটি পরীক্ষা করুন এবং প্রতিটি ফোল্ডারের জন্য নির্দিষ্ট আউটপুট ফোল্ডারগুলি সক্ষম করুন। আপনার প্রকল্পের প্রতিটি উত্স-ফোল্ডার হলেও একে একে যান এবং ম্যাভেন ব্যবহার করবে এমন আউটপুট ফোল্ডার সেট করুন।

উদাহরণস্বরূপ, আপনার ওয়েব প্রকল্পের ওয়েব প্রকল্পের অধীনে src/main/javaহওয়া উচিত target/classes, পরীক্ষার ক্লাসগুলিও target/test-classesওয়েব প্রকল্পের আওতায় থাকা উচিত ।

এই কনফিগারেশনটি ব্যবহার করা আপনাকে গ্রহণে ইউনিট পরীক্ষা চালানোর অনুমতি দেবে।

আরও একটি পরামর্শ, যদি আপনার ওয়েব প্রকল্পের পরীক্ষাগুলিতে সংস্থানগুলির অধীন থাকা কিছু কনফিগারেশন ফাইলের প্রয়োজন হয় তবে সেই ফোল্ডারটিকে উত্স ফোল্ডার হিসাবে অন্তর্ভুক্ত করতে এবং যথাযথ বিল্ড-পাথ কনফিগারেশন করতে ভুলবেন না।

আশা করি এটা সাহায্য করবে.


4
হাই কার্লোস, আপনার পরামর্শের জন্য অনেক ধন্যবাদ। দুর্ভাগ্যক্রমে তবে এটি সাহায্য করেনি। আমি সোর্স ফোল্ডারগুলির পাশাপাশি এসসিআর / মেইন / রিসোর্স (অ্যাপ্লিকেশন কনটেক্সট.এক্সএমএল, কিছু বৈশিষ্ট্য - টার্গেট / ক্লাস )গুলিতে / এসআরসি / মেইন / জাভা (টার্গেট / ক্লাস) এবং / এসসিআর / টেস্ট / জাভা (টার্গেট / টেস্ট-ক্লাস) যুক্ত করেছি )। একই সমস্যা - যখন আমার এসসিআর / পরীক্ষা / জাভা / ইউজারডাওস্টেস্ট.জাভাটিকে অ্যালিপস থেকে জাবিট-পরীক্ষা হিসাবে শুরু করা হয় তখন আমি "ক্লাসটি ইউজারডাওস্টেস্ট জাভা.এলং.ক্ল্যাশ নটফাউন্ডএক্সেপশন: ইউজারডাওটেষ্ট" পাইনি। অন্তত, এটি কিছুটা আলাদা তবে মূল ত্রুটির বার্তাটি ...
সোয়ালকনার

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

আমার জন্য এটি সমস্যার সমাধান করেনি। দেখা গেল এটি একটি AspectJ ইস্যু was যদি আপনি AspectJ ব্যবহার করেন তবে AspectJ ক্ষমতাগুলি সরিয়ে ফেলতে এবং পড়ার চেষ্টা করুন - আমার পক্ষে কাজ করেছেন
স্টিফান হাবরল

4
একই সমস্যা ছিল। আমি মনে করি এটি একটি গ্রহণ প্রকল্প - মাভেন - গিট ইস্যু। এটি সত্যিই এটিকে সঙ্কুচিত করে না তবে সমস্ত মেটাডেটা ফোল্ডার (.প্রজেক্ট,। যাই হোক না কেন ...) মুছে ফেলা, প্রকল্পটি মুছে ফেলা এবং কেবলমাত্র একটি মেভেন প্রকল্প হিসাবে পুনর্নির্মাণ আমার জন্য কাজ করেছে। আমি এমন কিছুও পেয়েছি যা গ্রহন-জুনিট করতে পারে তা জানত না: পরীক্ষার পদ্ধতিটি হাইলাইট করা এবং রানআস-জুনিত নির্বাচন করা কেবল সেই নির্দিষ্ট পরীক্ষা পদ্ধতি চালায়, পুরো পরীক্ষা নয়! আর @Ignoreজায়গা জুড়ে আর গুই শর্টকাট!
বিজিএস

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

47

কার্লোস পদ্ধতির সাহায্য! গ্রহন - java.lang.ClassNotFoundException

জুনিট রান কনফিগারেশনের ক্লাসপাথটি পরীক্ষা করার চেষ্টা করুন:

  1. আপনার রান কনফিগারেশন খুলুন
  2. আপনি যে জুনিয়ট-টেস্টটি শুরু করতে চান তাতে ক্লিক করুন
  3. ক্লাসপাথ ট্যাবে যান
  4. একটি ফোল্ডার যুক্ত করার চেষ্টা করুন (ব্যবহারকারীর এন্ট্রিগুলিতে ক্লিক করুন, উন্নতকে ক্লিক করুন, অ্যাড ফোল্ডারগুলিতে ক্লিক করুন, ঠিক আছে ক্লিক করুন এবং আপনার পরীক্ষার ক্লাসগুলির জন্য আউটপুটফোল্ডারটি অনুসন্ধান করুন (যাঁরা আপনাকে প্রজেক্টপ্রোপার্টি জাভা বিল্ড পাথ, উত্স অনুসারে পেয়েছেন))

আমার জন্য কাজ কর.


4
এটা কি খুব আশ্চর্যের নয়? এটি আমার পক্ষে কাজ করেছিল তবে লক্ষ্য ক্লাস দির প্রকল্পের জন্য বিল্ড ক্লাসপথের অংশ। আপনার কোনও নির্দিষ্ট ক্লাস যুক্ত করার দরকার আছে এমনটি খুব একটা বোঝায় না।
হোসে মুয়ানিস

আমি মনে করি না এই ক্রিয়াটি প্রয়োজনীয়ভাবে প্রয়োজনীয় ডিরেক্টরিটি যুক্ত করে যতটা কিছু পুনরায় লোড করার জন্য ট্রিগার করে। সফলভাবে রান করার পরে আপনি সম্ভবত নতুনভাবে যুক্ত ডিরেক্টরিটি সরিয়ে ফেলতে পারেন এবং এটি স্বাভাবিকের মতো কাজ করা উচিত। এছাড়াও, উপরে মন্তব্য সঠিক। কার্লোসের কাছ থেকে রেফারেন্স করা প্রশংসাও উত্সাহিত করতে চাই।
23:10

: আমি এই সমস্যার সঙ্গে আরো সহায়ক হতে অন্য তাই প্রশ্ন উপর উত্তর পাওয়া stackoverflow.com/a/5718520/901641
ArtOfWarfare

16

আপনার বিল্ড ক্লাসপথটি সঠিক, এজন্য আপনি সংকলন করতে পারেন। আপনার JUnit এর ক্লাসপথটি পরীক্ষা করা দরকার। রান মেনুতে যান এবং 'ওপেন রান ডায়ালগ' চয়ন করুন। সেখানে আপনাকে বিকল্প হিসাবে JUnit সহ বাম দিকে একটি গাছ দেখতে হবে। সেই নোডটি খুলুন এবং আপনার পরীক্ষাটি সন্ধান করুন এবং নির্বাচন করুন। ডান ফলকে আপনি ক্লাসপথের জন্য একটি ট্যাব দেখতে পাবেন। পরীক্ষাটি ইনস্ট্যান্ট করার চেষ্টা করছে যে আপনার ক্লাসটি পাওয়া গেছে তা নিশ্চিত হয়ে দেখুন।

সম্পাদনা করুন:

রিলিজের পরে এটি ডিফল্ট এক্সলিপ আউটপুট ফোল্ডারগুলিকে পরিবর্তিত করার পরে এটি ম্যাভেন এবং এর আচরণের সাথে সমস্যা বলে মনে হচ্ছে। আমি যেখানে বর্ণনা করা সমাধানগুলি দেখেছি

  • বুথক্লাসপাথে মাভেন স্থাপন করা জেরের উপরে কাজ করে বা or
  • চলমান mvn clean testকৌতুক বা
  • আপনার সমস্ত গ্রহণ প্রকল্পকে রিফ্রেশ করে পুনর্নির্মাণের ফলে সমস্যার সমাধান হয়
  • আপনার প্রকল্পে গিয়ে ম্যাভেন-> আপডেট কনফিগারেশন নির্বাচন করা সমস্যার সমাধান করে

প্রথম তিনটির সাথে, সমস্যাটির পুনরাবৃত্তি হওয়ার খবর ছিল। শেষটি আমার কাছে সবচেয়ে ভাল দেখাচ্ছে তবে এটি যদি কাজ করে না তবে দয়া করে অন্যদের চেষ্টা করুন।

এখানে এবং এখানে কিছু তথ্য


4
দুর্ভাগ্যক্রমে, "মাভেন => আপডেট কনফিগারেশন" সমস্যাটি মোটেও সমাধান করে না ... বিপরীতটি সত্য; এটি বিল্ড পাথ কনফিগারেশনগুলি মুছবে ... বা এর অর্থ অন্য কিছু কনফিগারেশন খারাপ?
swalkner

ঠিক যেমন @ সওয়ালকনার উল্লেখ করেছেন: মাভেন => আপডেট কনফিগারেশন বিল্ড পাথ কনফিগারেশনকে নষ্ট করবে। কোনও কারণে যা আমাকে বাদ দেয় প্লাগইনটি বর্জনীয় ফিল্টার সেট করবে যা কমান্ডটি চালানোর পরে আমাকে সর্বদা ম্যানুয়ালি অপসারণ করতে হবে
স্টিফান হাবরল

"রান মেনুতে যান এবং 'ওপেন রান ডায়ালগ' চয়ন করুন। হু ?? তা কোথায়?
বেরিট লারসেন

5

সক্ষম করা হলে তা এর [x] ব্যবহার অস্থায়ী JAR- র (এড়ানোর ক্লাসপাথ দৈর্ঘ্য সীমাবদ্ধতার) ক্লাসপাথ নির্দিষ্ট করার ভিতরে ক্লাসপাথ ট্যাব এর চালান কনফিগারেশন আমার জন্য কৌতুক করেনি।

যদি আপনার প্রকল্পটি বিশাল হয় এবং আপনার অন্যান্য ভাইবাল প্রকল্প এবং মাভেন নির্ভরতা থেকে প্রচুর নির্ভরতা থাকে, আপনি ক্লাসপথ দৈর্ঘ্যের সীমাবদ্ধতাগুলিকে আঘাত করতে পারেন এবং এটিই একমাত্র সমাধান বলে মনে হচ্ছে (আপনাকে স্থানীয় মাভেন রেপো সংক্ষিপ্ত করে ডিরেক্টরি তৈরি করা ছাড়াও (আমাদের ইতিমধ্যে শুরু হয়) সি: / এম 2 এ)

এখানে চিত্র বর্ণনা লিখুন


4

সমস্যাটি আপনার বিল্ড ফোল্ডারে ক্লাস ফাইলটি অনুপস্থিত। একটি সমাধান প্রকল্প পরিষ্কার এবং এটি পুনর্নির্মাণ হয়।


3

এখানে অনেক গুলিয়ে দেওয়া পরামর্শ রয়েছে।

টানা 'এন' ড্রপ, বা শ্রেণীর নামের রিফ্যাক্টরিং সম্পাদন করে আশেপাশে সংস্থানগুলি সরিয়ে নেওয়ার পরে মাভেন প্রকল্পগুলির সাথে আমি একাধিকবার এই সমস্যার মুখোমুখি হয়েছি।

যদি এটি ঘটে থাকে তবে এক্সিলিপস-এ .javaটার্মিনাল / ফাইল ব্রাউজারের মাধ্যমে পরীক্ষার কেস ( ) কে right-click -> Deleteঅনুলিপি করে অন্য কোনও জায়গায় অনুলিপি করুন এবং বিকল্পটি দেওয়ার পরে ডিস্কে মুছতে পছন্দ করুন, অনুলিপিটি ফাইলটিকে মূল ফাইলের জায়গায় সরিয়ে / অনুলিপি করুন, তারপরে Eclipse এ আপনার প্রকল্প নির্বাচন করুন এবং সংস্থানগুলি রিফ্রেশ করতে F5 টিপুন।

এটি দ্রুত এবং সহজ কাজ, এবং প্রতিবারের জন্য আমার কাছে স্থায়ীভাবে সমস্যাটি স্থির করে দিয়েছে।


আমি এটি জিজ্ঞাসা করতে প্ররোচিত হয়েছি যে এটি আপনার সমস্যা স্থায়ীভাবে স্থায়ী হয়েছে কিনা , বা প্রতিবার ... তবে আপনি যা বলতে চাইছেন তা পেয়েছি এবং আশ্চর্যরূপে এটি আমার জন্য কৌশলটি করেছে।
আমোস এম কার্পেন্টার

2

এটিই ছিল আমার সমস্যার সমাধান। অবশ্যই, অনেক কিছুই এর কারণ হতে পারে। আমার জন্য এটি ছিল যে মাভেন 2 (একলপের প্লাগইন নয়) একটি ভিন্ন নির্মাতা (এসপেক্টজে) ব্যবহারের জন্য গ্রহপিন্যাসের প্রোফাইলটি সেট করে দিচ্ছিল তবে আমার কাছে গ্রহনটির প্লাগইন নেই /

http://rbtech.blogspot.com/2009/09/eclipse-galileo-javalangclassnotfoundex.html

চিয়ার্স রামন বাকল্যান্ড


2

শচিনের ডান: এমনকি সঠিক শ্রেণির পথ থাকলেও সমস্যাগুলির ট্যাবটি দেখায় যে কিছু নির্ভরতা বা রিসোর্স / প্রকল্পে ত্রুটি রয়েছে যা মেভেনের জন্য স্বয়ংক্রিয়ভাবে বর্গ তৈরি এবং তৈরি করার সময় আপনার পরীক্ষার শ্রেণিতে পরিবর্তন করার সময় এটি সংশোধন করা দরকার ।

"ওহে,

এটি খুব পুরাতন জুলাই (কোন বছর) তবে আমার একই সমস্যা ছিল।

প্রকৃত সমস্যাটিতে দেখা গেছে যে গ্রহনটি জাভা ফাইলের জন্য শ্রেণি ফাইল তৈরি করতে সক্ষম ছিল না, শ্রেণিপথ যথাযথ ছিল।

সমস্যা ট্যাবটি দেখুন এবং দেখুন আপনার প্রকল্পে কোনও ফাইল / ফাইল অনুপস্থিত check আপনি একটি নতুন প্রজ তৈরি করতে পারেন এবং একের পর এক ফাইল যুক্ত করতে পারেন এবং ক্লাস তৈরি এবং ক্লাস তৈরি করা বন্ধ না হওয়া পর্যন্ত এগুলি তৈরি করতে পারেন (ক্লাসের জন্য ওয়ার্কস্পেস / প্রজ / বিন / প্যাকেজ / ফোল্ডার পরীক্ষা করুন)

এর জঘন্য তবে সত্য, ইক্যপ্লাই প্রশংসা করতে ব্যর্থ হয়েছে কারণ 20 টির মধ্যে 4 টি জাভা ফাইল একটি একক চিত্র ব্যবহার করছে যা অনুপস্থিত ছিল। এবং ফলস্বরূপ জাভা ফাইলগুলির কোনওটিই সংকলিত হয়নি।

ক্লাসস্প্যাট এখানে কোনও সমস্যা নয়।


2

আমাদের সঠিক ব্যতিক্রম ছিল (উইন 7-তে স্প্রিংসোর্স সরঞ্জাম, টমক্যাট ব্যবহার করে) এবং কারণটি হ'ল আমরা সাবডোমাইন.জাভা থেকে সাবডোমেন.জাভা (ডি বনাম ডি) পর্যন্ত একটি ফাইলের নাম (একটি ফাইলের নাম পরিবর্তন করে) রিফেক্টর করেছিলাম এবং স্প্রিংসোর্স হলেও এটি কোনওভাবে সংঘর্ষ হয়েছিল though নতুন নাম সাবডোমেন.জভা দেখানো হচ্ছে। সমাধানটি ছিল ফাইলটি (স্প্রিংসোর্সের মাধ্যমে) মোছা এবং এটি আবার সাবডোমেন.জাভা নামে তৈরি করা এবং এর পূর্ববর্তী সামগ্রীটি অনুলিপি করা। যে হিসাবে সহজ।


উইন্ডোজ আপগ্রেড করার আগে সামঞ্জস্যের জন্য পিসি যাচাই করে না এমন প্রোগ্রামটি চালানো না হওয়া পর্যন্ত আমি সর্বদা জুনিট টেস্ট কেস চালিত করি। যা কিছু ভেঙে গেছে বলে মনে হয়েছিল, আমি আবার JUnit পরীক্ষার মামলা চালাতে পারছি না। (এবং সমস্ত বিদ্যমান উত্তর কার্যকর হয় না)
CoffeDeveloper

2

আমার ঠিক একই সমস্যা ছিল কিন্তু আমি এটি বুঝতে পেরেছি! আপনার প্রকল্পের ফাইলে যান এবং এটিতে ডান ক্লিক করুন, তারপরে ক্লিক করুন Refreshবা এফ 5 টিপুন। তারপরে চেষ্টা করুন এবং এটি চালান। যদি এটি এখনও কাজ না করে তবে কেবল এটি ভুলে যান, যেমন আমার প্রায় একই সমস্যা ছিল এবং এর অর্থ হ'ল আপনার গ্রহের সংস্করণটি আবর্জনা।


1

ক্লিক করুন project->properties->Java build path->Sourceএবং প্রতিটি srcফোল্ডারটি বৈধ বিদ্যমান বা সম্প্রতি সরানো আছে তা পরীক্ষা করুন । কোনও অনুপস্থিত পাথ বা ভুল পথ সংশোধন করুন এবং পুনর্নির্মাণ এবং পরীক্ষা চালান। এটি সমস্যার সমাধান করবে।


1

আমি যা করেছি সমস্ত সম্পত্তি -> জাভা বিল্ড পাথ -> অর্ডার এবং রফতানি -> সমস্ত চেক না করা বাক্স সক্ষম করা হয়েছে -> জুনিটকে সমস্তভাবে সরিয়ে নেওয়া হয়েছে


1

চেষ্টা করেছেন

Link : [here][1]

Open your run configurations
Click on the jUnit-Test you want to start
go to the classpath tab
Try to add a folder (click on user entries, click on advanced, click on add folders,click on ok and search the outputfolder for your test classes(those you find under projektproperties java build path, source))

পরে কাজ

ম্যাভেন 2 লাইফ সাইকেল >> পরীক্ষা


1

আমি এই পৃষ্ঠায় সমস্ত সমাধানের চেষ্টা করেছি: রিফ্রেশ প্রকল্প, পুনর্নির্মাণ, সমস্ত প্রকল্প পরিষ্কার, পুনরায় সূচনা, পুনরায় আমদানি (এমনকি) প্রকল্পগুলি, পুনর্নির্মাণ এবং পুনরায় রিফ্রেশ করুন। কিছুই কাজ হয়নি। কি করেনি একটি শ্রেণী অনুলিপি ছিল নতুন নাম উদ্ভট হলেও সত্যি - যা জরিমানা চালানো হয়।

কিছু সময়ের জন্য এটি সহ্য করার পরে, আমি কেবল এটি দ্বারা স্থির করেছি:

  1. Runমেনু মাধ্যমে
  2. নির্বাচন করুন Run Configurations
  3. আপনার ইউনিট পরীক্ষার সাথে সম্পর্কিত রান কনফিগারেশনটি চয়ন করুন।
  4. মুছে Run Configurationটিপে বা রেড এক্স-এ ক্লিক করে এন্ট্রিটি সরিয়ে ফেলা হচ্ছে।

ক্যাশেড রান কনফিগারেশনের সাথে অবশ্যই কিছু স্ক্রু করা উচিত।


4
অনেক বেশি সময় নষ্ট করার পরে আমি উপরের ধাপগুলি শেষ করে শেষ করেছি। আমি তখন সমস্ত রান টেস্ট কনফিগারেশন মুছে ফেলার এক বীরত্বপূর্ণ সিদ্ধান্ত নিয়েছিলাম এবং নতুন রান কনফিগারেশনটিতে স্পষ্টভাবে প্রকল্পটি দেখানো হয়েছে (নীচে মাভেন নির্ভরতা সহ) এখন আমার পরীক্ষাগুলির কোনওটিই ক্লাসপথে পাওয়া যাবে না। ভঙ্গুরগ্রহণ কতটা ভঙ্গুর তা আমি ভুলে যেতে থাকি। এর পরে গ্রহন নিয়ে কোনও পরীক্ষা চালানো যাবে না (আমি একটি নির্দিষ্ট পরীক্ষা নির্বাচন করার আগে - ঠিক আছে)। অবশেষে, আমি নীচে কমডোডেভ পরামর্শটি চেষ্টা করেছি। এই স্থির জিনিসগুলি ... আপনাকে এই আদর্শের মাধ্যমে অবিশ্বাস্য লুপগুলি (এক সিরিজের সর্বশেষতম ..) দিয়ে যেতে হবে
Justin

1

গ্রহনের অভ্যন্তর থেকে জুনিয়ট পরীক্ষা আমাকে নো ক্লাসডেফফাউন্ডআরারও দিয়েছে। কমান্ড লাইন থেকে 'এমভিএন ক্লিন পরীক্ষা' চালানো আমাকে বেশ কয়েকটি জারে নিম্নলিখিত ত্রুটি দিয়েছে: অবৈধ এলওসি শিরোনাম (খারাপ স্বাক্ষর) স্থানীয় এম 2 সংগ্রহস্থল থেকে এই জারগুলি মুছে ফেলা এবং 'এমভিএন ক্লিন পরীক্ষা' চালানো আমার সমস্যার সমাধান করেছে solved


1

আমি সেই বুলিট পাথটি ---> লাইব্রেরি ---> লাইব্রেরি যুক্ত ---> জুনিট চেক জুনিট 4 সমাধান করি


1

সাধারণত জাভা অ্যাপ্লিকেশন javaসরঞ্জামটি চালানোর সময় ক্লাস ফাইলটি খুঁজে পেতে অক্ষম এই সমস্যাটি ঘটে ।

বেশিরভাগ খাঁটি প্রকল্পে আমরা এই সমস্যাটি দেখি কারণ এক্লিপস-মাভেন সিঙ্ক সমস্যা। এই সমস্যাটি সমাধান করার জন্য: ম্যাভেন-> কনফিগারেশন আপডেট করুন


1

আমি ভিএম যুক্তিতে এটি যুক্ত করার পরামর্শ দিচ্ছি;

-verbose:class -verbose:module -Xdiag

তারপরে আপনি এটি Eclipse থেকে ডিবাগ করতে পারেন যা কিছু বার্তা যেমন মুদ্রণ করতে পারে;

java.lang.ClassNotFoundException: org.adligo.somewhere.Foo
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:760)
    at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:655)

এটি থেকে আপনি নিজেই একলাইপস ল্যানুচর ডিবাগ করার জন্য ল্যাঞ্চারহেল্পার.জভা 760 তে একটি ব্রেকপয়েন্টটি সেট করতে পারেন। আমার ক্ষেত্রে আমি লক্ষ্য করেছি যে ল্যানুচ কনফিগারেশনে আমার অনেকগুলি জার থাকলেও ব্যবহারকারীর ক্লাসপাথটি বাতিল হয়ে গেছে।


0

দয়া করে উইন্ডোজ> পছন্দসমূহ> জাভা> ইনস্টলড জেআরই থেকে জেডিকে সংশোধন করতে নির্দেশ করুন।

জেয়ের দিকে নির্দেশ করবেন না, একটি সঠিক জেডিকে নির্দেশ করুন। আমি জেডিকে 1.6U29 এর দিকে ইঙ্গিত করে প্রকল্পটি রিফ্রেশ করেছি।

পরবর্তীতে, সমস্যাটি শেষ হয়ে গেছে এবং ইউনাইট টেস্টগুলি ভাল কাজ করছে।

ধন্যবাদ,
-Tapas


0

আমি সম্প্রতি Eclipse এ একই ত্রুটিতে ছুঁড়েছি, অর্থাৎ, আমি কীভাবে কনফিগারেশনগুলি পরিবর্তন করি তা বিবেচনা করেই Eclipse IDE ইউনিট পরীক্ষার শ্রেণিটি খুঁজে পেল না। পূর্ববর্তী পোস্টগুলি এখানে এবং অন্যান্য ওয়েবসাইটগুলিতে শিখেছি, আমি ক্লাসপথ এবং উত্সের তথ্যগুলি দ্বিগুণ পরীক্ষা করে দেখেছি এবং ট্রিপলটি পরীক্ষা করেছি এবং উত্স ফোল্ডার এবং লাইব্রেরিগুলিকে "রান কনফিগারেশন" এবং "জাভা বিল্ড পাথ" উভয়ই উপরে এবং নীচে স্থানান্তরিত করেছি "উইন্ডোজ কনফিগার করুন, এবং আমি প্রকল্পটি পরিষ্কার করে পুনরায় তৈরি করেছি, তবে কোনও কৌশল আমার পক্ষে কাজ করে না। নির্দিষ্ট জাভা প্রকল্পটি একটি পুরানো এএনটি সংকলিত প্রকল্প এবং এতে অনেকগুলি জার রয়েছে যা গ্রহগ্রন্থাগারটিতে অন্তর্ভুক্ত রয়েছে।

তারপরে, আমি একটি প্রধান () পদ্ধতি যুক্ত করার জন্য ইউনিট পরীক্ষার শ্রেণিটি পরিবর্তন করেছি এবং এটিকে ডান ক্লিক করুন "রান হিসাবে" জাবি অ্যাপ্লিকেশনটির পরিবর্তে একটি জাভা অ্যাপ্লিকেশনটিতে এবং হঠাৎ করেই, গ্রহনটি ঘুম থেকে উঠে ক্লাসটি সঠিকভাবে চিহ্নিত করেছে identified এরপরে, আমি এটিকে আবার এক ইউনিট পরীক্ষার অ্যাপ্লিকেশনটিতে স্যুইচ করেছি, এবং এটি এখনও কাজ করছে।

এটি Eclipse এ একটি ত্রুটি বলে মনে হচ্ছে, আমি অনুমান করছি প্রচুর সংখ্যক গ্রন্থাগার (> 260) আমার JUnit বর্গ সনাক্ত করতে JVM এর ক্ষমতা বিভ্রান্ত করতে পারে।


0

আমি এই সমস্যাটি নিয়েও আক্রান্ত হয়েছিলাম এবং আমার মামলার যথেষ্ট সমাধান নিয়ে আসতে পেরেছিলাম। যদি আপনার Eclipse প্রজেক্টে আপনার প্রকল্পের মূলটিতে একটি .classpath ফাইল রয়েছে (এটি প্যাকেজ এক্সপ্লোরার ভিউয়ের পরিবর্তে নেভিগেটর ভিউতে দেখুন) তবে নিশ্চিত হয়ে নিন যে আপনার জেআরই কনটেইনার শ্রেণিবদ্ধের পূর্বে আপনার মাভেন ক্লাসপাথ্রিটি উপস্থিত হয়েছে appears

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
</classpath>

যদি আপনার প্রকল্পে একটি। ক্লাসপথ ফাইল না থাকে তবে আপনি অর্ডার এবং রফতানি স্যুইচ করতে আপনার প্রকল্পের জাভা বিল্ড পাথ সম্পাদনা করতে পারেন। যদি আপনার প্রকল্পে .classpath ফাইল থাকে এবং আপনি কেবল জাভা বিল্ড পাথটিতে আপনার ক্রমটি পরিবর্তন করেন তবে আপনি দেখতে পাবেন যে অর্ডারিংটি প্রভাবিত হয়নি এবং সমস্যাটি অব্যাহত থাকবে।

এবং একটি প্রকল্প-> ক্লিন আপনার পরিবর্তন করার পরে জিনিসগুলিকে কখনও ক্ষতি করে না।


0

আপনার পরীক্ষার প্রবর্তন কনফিগারেশনে নিম্নলিখিত লাইনগুলি অন্তর্ভুক্ত না রয়েছে তা নিশ্চিত করুন বা স্বয়ংক্রিয় মাভেন নির্ভরতা পরিচালন সক্ষম করার চেষ্টা করুন।

<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>

0

আমি এই দীর্ঘ পোস্টে আমি যা পড়েছি তার সব চেষ্টা করেছি এবং, অবিশ্বাস্যভাবে, আমার জন্য যা কাজ করেছে তা পরীক্ষার ক্লাসে Run as JUnit testক্লিক করা এবং নির্বাচন করা , পরীক্ষার পদ্ধতিতে ক্লিক করা এবং সেভাবে চালানোর চেয়ে JUnit test। আমার ধারণা নেই কেন?


0

প্রকল্পটি গ্রহণ থেকে (হার্ড ডিস্ক থেকে নয়) মুছে ফেলা হচ্ছে যা একরকমভাবে কর্মক্ষেত্রটি পরিষ্কার করছে এবং প্রকল্পটিকে আবার গ্রহনে রূপান্তর করা আমার জন্য কাজ করেছে।


0

আমারও একই সমস্যা ছিল। আমি যা করলাম তা হ'ল

i)। উত্সাহিত গ্রহগ্রহ নিদর্শন

mvn clean eclipse:eclipse

ii)। প্রকল্পটি রিফ্রেশ করুন এবং আপনার জুনিট পরীক্ষাটি পুনরায় চালু করুন। ভাল কাজ করা উচিত।


0

জাভা বিল্ড পাথে ক্লাসপাথ শিল্পকর্মগুলির ক্রম পরিবর্তন করা আমার জন্য এটি সমাধান করেছে।

  1. প্রকল্পে ডান ক্লিক করুন এবং প্রজেক্ট বিল্ডের পথে যান।
  2. যান, অর্ডার এবং রফতানি ট্যাবে যান এবং উত্স পরে জেআরই সিস্টেম লাইব্রেরি সরান।

এটি এটি ঠিক করা উচিত।


0

JUnit 4.4 JMockit / JUnit ইন্টিগ্রেশন দ্বারা সমর্থিত নয়। কেবলমাত্র 4.5 বা আরও নতুন সংস্করণগুলি এটি সমর্থন করে।


0

ওয়েব অ্যাপ্লিকেশন চলাকালীন আমাদের বেশিরভাগই এই ব্যতিক্রমটি পাবেন। যখন আপনি এই ত্রুটিটি পেয়েছেন তখন আপনার সঠিক ফোল্ডারে .class ফাইল স্থাপন করা হবে।

ওয়েব অ্যাপ্লিকেশনগুলিতে সমস্ত .class ফাইলগুলিতে WEB-INF \ ক্লাস ফোল্ডারে বসতে হবে। আপনি যদি গ্রহদে ওয়েব অ্যাপ চালাচ্ছেন তবে দয়া করে পদক্ষেপগুলি অনুসরণ করুন

পদক্ষেপ 1: প্রকল্প ফোল্ডারে ডান ক্লিক করুন এবং বৈশিষ্ট্যগুলি নির্বাচন করুন পদক্ষেপ 2: "জাভা বিল্ড পাথ" এ ক্লিক করুন আপনি "উত্স", "প্রকল্পগুলি", "লাইব্রেরি" ইত্যাদি বিভিন্ন ট্যাব দেখতে পাবেন পদক্ষেপ 3: উত্স ফোল্ডার নির্বাচন করুন select এর অধীনে আপনি আপনার প্রকল্পের বিশদটি দেখতে পাবেন ৪ র্থ ধাপ: "উত্স" ফোল্ডারে আপনি ডিফল্ট আউটপুট ফোল্ডার বিকল্পটি দেখতে পাবেন। এখানে আপনাকে ক্লাস ফোল্ডারটি ওয়েবে-আইএনএফের অধীনে দিতে হবে। প্রকল্পের নাম / ওয়েবকন্টেন্ট / ওয়েবে-আইএনএফ / ক্লাসগুলির মতো কাঠামোটি আপনার প্রয়োগের উপর কাঠামো নির্ভর করে দয়া করে এখানে মনে রাখবেন আপনার "ক্লাস" ফোল্ডার তৈরি করার দরকার নেই। গ্রহন আপনার জন্য এটি তৈরি করবে। পদক্ষেপ 5: "ওকে" ক্লিক করুন এবং প্রকল্পটি পরিষ্কার করুন এবং বিল্ড করুন। এটি এখন আপনার অ্যাপ্লিকেশন চলবে।


0

জুনিট পরীক্ষা চলাকালীন আমি Eclipse - java.lang.ClassNotFoundException দেখেছি। আমি এই প্রকল্পে যুক্ত হওয়া বাহ্যিক জার ফাইলগুলির একটি মুছলাম। Eclipse থেকে প্রকল্পের কাছে এই জার ফাইলটির রেফারেন্স সরানোর পরে। আমি জুনিট পরীক্ষা চালাতে পারতাম।


যদি বাহ্যিক জার ফাইলটি অ্যাপ্লিকেশনটির জন্য গুরুত্বপূর্ণ এবং অ্যাপের কিছু কার্যকারিতার জন্য প্রয়োজনীয়? আমি নিশ্চিত নই যে এটি একটি কার্যকর সমাধান।
কার্ল পুল 4

0

পাথ -> উত্স তৈরি করতে যান এবং সমস্ত উত্স ফোল্ডারের জন্য হ্যাঁ বিকল্পটি "বিকল্প বৈকল্পিক সমস্যাগুলি উপেক্ষা করুন" এ টগল করুন।

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