java.lang.ClassNotFoundException: eclipse এ com.mysql.jdbc. ড্রাইভার


90

কোডটির সাথে যা ভুল তা ডিবাগ করার সময় প্রচুর ত্রুটি রয়েছে। আমি ডাটাবেস মাইএসকিএল এর সাথে সংযোগের জন্য একটি সিঙ্গলটন ক্লাসের জন্য একটি কোড লিখছি।

এখানে আমার কোড

package com.glomindz.mercuri.util;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySingleTon {
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "test";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "";

    private static MySingleTon myObj;   
    private Connection Con ;
    private MySingleTon() {
        System.out.println("Hello");
        Con= createConnection();
    }

    @SuppressWarnings("rawtypes")
    public Connection createConnection() {
        Connection connection = null;
        try {
            // Load the JDBC driver
            Class driver_class = Class.forName(driver);
            Driver driver = (Driver) driver_class.newInstance();
            DriverManager.registerDriver(driver);
            connection = DriverManager.getConnection(url + dbName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
        return connection;
    }

    /**
     * Create a static method to get instance.
     */
    public static MySingleTon getInstance() {
        if (myObj == null) {
            myObj = new MySingleTon();
        }
        return myObj;
    }

    public static void main(String a[]) {
        MySingleTon st = MySingleTon.getInstance();
    }
}

আমি জাভাতে নতুন। সাহায্য করুন.


4
আপনার ক্লাসপথে ড্রাইভার জার আছে?
ননকমপ

নিশ্চিত হয়ে নিন যে আপনি আপনার getInstance ()
সিদ্ধার্থ


4
আপনি রানটাইম এ ত্রুটি পেতে থাকলে আপনার ওয়েবসার্ভারের লিব ডিরেক্টরিতে জার ফাইলটি আটকাতে হবে। অন্যদিকে, আপনি যদি সংকলনের সময় ত্রুটি পেয়ে থাকেন তবে বিল্ড পাথটিতে জারটি যুক্ত করুন।
জাজোদুদে

উত্তর:


125

দেখে মনে হচ্ছে মাইএসকিএল সংযোগ লাইব্রেরি প্রকল্পে অন্তর্ভুক্ত নেই । প্রস্তাবিত সমাধানগুলির একটি অনুসরণ করে সমস্যার সমাধান করুন:

  • প্রকল্পের সমাধান সমাধান

Pom.xML প্রকল্প ফাইলটিতে mysql-সংযোজক নির্ভরতা যুক্ত করুন:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.39</version>
</dependency>

এখানে আপনি সমস্ত সংস্করণ: https://mvnrepository.com/artifact/mysql/mysql-connector-java

  • সমস্ত প্রকল্প সমাধান

প্রজেক্টে ম্যানুয়ালি জারের লাইব্রেরি যুক্ত করুন।

প্রকল্পটি রাইট ক্লিক করুন -> বিল্ড পাথ -> বিল্ড পাথটি কনফিগার করুন

ইন Libraries Tab প্রেস Add External Jar এবং Selectআপনার বয়াম।

আপনি এখানে mysql- সংযোগকারী জন্য জিপ খুঁজে পেতে পারেন

  • ব্যাখ্যা:

প্রকল্পটি তৈরি করার সময়, জাভা আপনাকে একটি ব্যতিক্রম ছুঁড়ে দেয় কারণ মাইএসকিএল সংযোগ লাইব্রেরি থেকে একটি ফাইল (com.mysql.jdbc.Driver বর্গ) পাওয়া যায় নি। সমাধানটি প্রকল্পটিতে লাইব্রেরি যুক্ত করছে এবং জাভা com.mysql.jdbc.Driver খুঁজে পাবে


7
আমরা যদি কোনও আইডিই ব্যবহার না করে এবং কেবল আমাদের টার্মিনালে চালাচ্ছি তবে কী হবে? তাহলে কীভাবে এই সমস্যা মোকাবেলা করবেন?
অচ্যুত আইচ

4
@ আসাদের পরামর্শ অনুসারে আপনি ফোল্ডারে mysql-connector-java-8.0.15.jarফাইল যোগ না করা পর্যন্ত সমস্যার সমাধান হবে না apache-tomcat-9.0.16\lib
সোয়েতা কসুর

53

আপনি যদি নিজের আইডিইতে ত্রুটি পেয়ে থাকেন (সংকলন-সময় ত্রুটি), আপনার মাইএসকিএল-সংযোজক জার ফাইলটি আপনার লিবগুলিতে যুক্ত করতে হবে এবং এটি আপনার প্রকল্পের রেফারেন্সযুক্ত লাইব্রেরিতে যুক্ত করতে হবে।

আপনি যখন এটি চালাচ্ছেন আপনি যদি এই ত্রুটিটি পান তবে সম্ভবত এটি কারণ আপনি মাইএসকিএল-সংযোজক জেআর ফাইলটি আপনার ওয়েবসার্ভারের লাইব ফোল্ডারে অন্তর্ভুক্ত করেননি।

যোগ mysql-connector-java-5.1.25-bin.jarআপনার ওয়েবসার্ভার এর liberal এর সংক্ষিপ্ত রূপ নির্দেশিকাতে আপনার ক্লাসপাথ প্রয়োজন এবং এছাড়াও। টমকেট লাইব পাথ উদাহরণ হিসাবে দেওয়া হয়Tomcat 6.0\lib


4
আমরা যদি কোনও আইডিই ব্যবহার না করে এবং কেবল আমাদের টার্মিনালে চালাচ্ছি তবে কী হবে? তাহলে কীভাবে এই সমস্যা মোকাবেলা করবেন?
অচ্যুত আইচ

আপনি যদি কোনও আইডিই ব্যবহার না করে থাকেন তবে আপনার ক্লাসপথে জার ফাইলের পথটি যুক্ত করা উচিত
আসাদ



14

প্রত্যেকে একটি উত্তর লিখেছেন তবে আমি এখনও অবাক হয়েছি যে কেউই সর্বোত্তম সহজ উপায় ব্যবহার করে আসলে এর উত্তর দেয় না।
লোকেরা উত্তর দেয় যাতে জার ফাইল অন্তর্ভুক্ত থাকে। তবে, ত্রুটিটি এখনও ঘটবে।

তার কারণ হ'ল, প্রকল্পটি চালিত হওয়ার সময় জারটি স্থাপন করা হয় না। সুতরাং, আমাদের যা করা দরকার তা হল, এই জারটিও মোতায়েন করতে আইডিইকে বলুন।

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

পদক্ষেপ 1: আপনি যদি জারে ফাইলটিকে প্রজেক্টে উল্লেখ না করেন তবে এটির মতো রেফারেন্স করুন।

প্রকল্পে ডান ক্লিক করুন এবং প্রকল্পের বৈশিষ্ট্যে যান। তারপরে, জাভা বিল্ড পাথে যান, তারপরে বাহ্যিক জার ফাইল যুক্ত করুন।

তবে এটি এখনও সমস্যার সমাধান করবে না কারণ বিল্ড পাথের মাধ্যমে বাহ্যিক জার যুক্ত করা কেবল ক্লাসগুলি সংকলন করতে সহায়তা করে এবং আপনি যখন প্রকল্পটি চালাবেন তখন জারটি স্থাপন করা হবে না। তার জন্য এই পদক্ষেপটি অনুসরণ করুন

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

যোগ করার আগে

অ্যাড করার পরে


ধন্যবাদ দোস্ত. কাজ করেছে। অন্যরা কেন এটি উল্লেখ করল না কারণ এটি শুধুমাত্র
একটিগ্রন্থ

@ সায়কা হ্যাঁ, এটি হতে পারে।
তাহির হুসেন মীর

@ তাহিরহসাইন মীর আপনাকে অনেক ধন্যবাদ এই উত্তরটি সত্যই কার্যকর :-)
ddmmcc

11

আপনাকে আপনার ক্লাসপথে মাইএসকিউএল মাইএসকিউএল সংযোগকারী জারের জন্য ড্রাইভার জার অন্তর্ভুক্ত করতে হবে ।

আপনি যদি Eclipse ব্যবহার করছেন: কিভাবে নির্ভরশীল লাইব্রেরি যুক্ত করবেন

আপনি যদি কমান্ড লাইনটি ব্যবহার করেন তবে জাভা -cp প্যারামিটার ব্যবহার করে ড্রাইভার জারে যাওয়ার পথটি অন্তর্ভুক্ত করে।

java -cp C:\lib\* Main

আমরা যদি কোনও আইডিই ব্যবহার না করে এবং কেবল আমাদের টার্মিনালে চালাচ্ছি তবে কী হবে? তাহলে কীভাবে এই সমস্যা মোকাবেলা করবেন?
অচ্যুত আইচ

4
দিচ্ছে ব্যবহার করে -cpমূল শ্রেণীর ত্রুটি খুঁজে পাওয়া বা লোড করা যায়নি। আমাকে অন্য ফোল্ডারে মেইন ক্লাস লাগাতে হবে?
zygimantus


8

জেডিবিসি এপিআইতে বেশিরভাগ ইন্টারফেস থাকে যা কোনও ডাটাবেস থেকে স্বতন্ত্রভাবে কাজ করে। জেডিবিসি এপিআই প্রয়োগ করে এমন প্রতিটি ডাটাবেসের জন্য একটি ডাটাবেস নির্দিষ্ট ড্রাইভারের প্রয়োজন।

প্রথমে www.mysql.com থেকে মাইএসকিউএল সংযোগকারী জারটি ডাউনলোড করুন, তারপরে:

Right Click the project -- > build path -- > configure build path

লাইব্রেরি ট্যাবে প্রেস করুন Add External Jarএবং আপনার জারটি নির্বাচন করুন।


3

ম্যাভেন ভিত্তিক প্রকল্পগুলির জন্য আপনার নির্ভরতা প্রয়োজন।

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
</dependency>

4
পোস্টগ্রিজ এসকিউএল কেন? প্রশ্নটি মাইএসকিউএল সম্পর্কে।
নেক্সা

প্রশ্নের সাথে মেলে উত্তরের সম্পাদনা করেছেন
টমটমসি

2

প্রকল্পটিতে গ্রন্থাগারগুলিতে -> ডান ক্লিক করুন -> গ্রন্থাগার যুক্ত করুন -> মাইএসকিএলকনেক্টর 5.1


2

ড্রাইভার সংযোগকারী আপনার নির্মাণের পথে নেই। বিল্ড পাথটি কনফিগার করুন এবং এটি 'মাইএসকিএল-সংযোজক-জাভা-5.1.25-বিন.জার'-এ নির্দেশ করুন (আপনি যে সংস্করণটি ব্যবহার করছেন তা পরীক্ষা করুন)। বিকল্পভাবে আপনি maven ব্যবহার করতে পারেন: ডি


2

ইন্টেলিজ আইডিয়াটির জন্য, আপনার প্রকল্প কাঠামোতে (ফাইল, প্রকল্প কাঠামো) যান এবং আপনার গ্লোবাল লাইব্রেরিতে মাইএসকিএল সংযোগকারী .jar ফাইল যুক্ত করুন। একবার সেখানে আসার পরে, এটিতে ডান ক্লিক করুন এবং 'মডিউলগুলিতে যুক্ত করুন' নির্বাচন করুন। প্রয়োগ করুন / ঠিক আছে হিট করুন এবং আপনার ভাল হওয়া উচিত।


1

আমার মামলায় নেটবিন সংস্করণ মাভেন প্রকল্প 7.২.১ এর মতো মনে হতে পারে তুচ্ছ different প্রকল্পে একটি ফোল্ডার রয়েছে যার নাম নির্ভরতা। ডান ক্লিক করুন এবং তারপরে এটি একটি পপআপ উইন্ডো নিয়ে আসে যেখানে আপনি প্যাকেজগুলির জন্য অনুসন্ধান করতে পারেন। ক্যোয়ারী এরিয়াতে রাখুন

mysql-connector

এটি ম্যাচগুলি নিয়ে আসবে (মনে হচ্ছে এটি কিছু সংগ্রহস্থলের বিরুদ্ধে এটি করে)। ডাবল ক্লিক করুন তারপর ইনস্টল করুন।


1

কারণ এটি ত্রুটির কারণে সাব ডিরেক্টরি ডিরেক্টরিতে WEB-INF ফোল্ডারটি উপস্থিত নেই। আপনি হয় পাবলিক_এইচটিএমএল এর অধীনে ওয়েবে-আইএনএফ ফোল্ডারটি ব্যবহার করতে অ্যাপ্লিকেশনটি সংকলন করুন বা উপরের ত্রুটি হিসাবে সাব ফোল্ডারে WEB-INF ফোল্ডারটি অনুলিপি করুন।


0

শ্রেণি পথ সংজ্ঞায়িত না হওয়ায় ব্যতিক্রমও ঘটতে পারে।

কয়েক ঘন্টা গবেষণা এবং আক্ষরিকভাবে কয়েকশ পৃষ্ঠাতে যাওয়ার পরে, সমস্যাটি ছিল লাইব্রেরির শ্রেণিবদ্ধ পথটি সংজ্ঞায়িত করা হয়নি।

আপনার উইন্ডোজ মেশিনে নিম্নরূপ শ্রেণীর পথ নির্ধারণ করুন

set classpath=path\to\your\jdbc\jar\file;.


0

আপনি যদি টোমকেট ব্যবহার করছেন তবে প্রকল্প ডিরেক্টরিটির সাথে আপনার ডাটাবেস সংযোগকারী জার ফাইলটি টমক্যাট / লিবতে অনুলিপি করা উচিত। এটি আমার জন্য কাজ করেছে


0

এটি 2020 হিসাবে ব্যবহার করা দরকার

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.18</version>
    </dependency>

0

আমি এক্লিপস আইডিইতে এসকিউএল ডাটাবেস সহ একটি সাধারণ জাভাএফএক্স 11 অ্যাপ্লিকেশন বিকাশ করছি । প্রতিবেদন তৈরি করতে আমি জ্যাস্পার জারে যুক্ত করেছি। হঠাৎ এটি "এই" ত্রুটি ছুড়ে দেয় ।

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

এটি ভাল চলছিল (এই বিজ্ঞাপনের আগে)। কিন্তু হঠাৎ করে!

আমি এই সাধারণ অ্যাপ্লিকেশনটির জন্য খাঁটি বা অন্যান্য পরিচালকদের ব্যবহার করছি না। আমি ম্যানুয়ালি জার যোগ করছি।

আমি "ব্যবহারকারী লাইব্রেরি" তৈরি করেছি এবং আমার জারগুলি বাইরের ফোল্ডারগুলি থেকে যুক্ত করেছি।

সমস্যা অ্যাক্সেসিং এরিয়া: আমার "ইউজার লাইব্রেরি" সিস্টেম লাইব্রেরি হিসাবে চিহ্নিত হয়েছে আমি সবেমাত্র চিহ্নটি সরিয়েছি। এখন এটি সিস্টেম লাইব্রেরি নয়। "এখন আমার প্রকল্পের কাজ ভাল"।

নিজেরাই ডিবাগ করুন: অন্য জিনিস চেষ্টা করেছেন: চালানোর সময় কনফিগারেশন: লাইব্রেরি সরিয়ে চেষ্টা করুন এবং একে একে জার যুক্ত করুন এবং দেখুন। - এখানে আপনাকে সমস্ত জারগুলি একে একে মুছে ফেলতে হবে, রান কনফিগারেশনে এই মুহূর্তে গ্রহনটিতে কোনও নির্বাচন করা এবং অপসারণ করতে হবে না। সুতরাং ত্রুটি বার্তাগুলি পরিবর্তিত হয়ে অন্য জারে পরিণত হয়।

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


0
I was also facing the same problem

মাইএসকিএল-সংযোজক-জাভা জার ফাইলটি ডাউনলোড করুন

এটিতে আটকান C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

আশা করি আপনার এই কাজটিও !!

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