ইন্টেলিজ আইডিইএতে অ্যাপ্লিকেশন পরিচালিত প্রোফাইলে ক্লাসপাথে ডিরেক্টরি কীভাবে যুক্ত করবেন?


206

আমি একটি অ্যাপ্লিকেশন রান প্রোফাইলের ক্লাসপথে একটি ডিরেক্টরি যুক্ত করার চেষ্টা করছি

আমি যদি ভিএম সেটিংসে -cp x: টার্গেট / ক্লাস ব্যবহার করে ওভাররাইড করি তবে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain

আমার প্রকল্পের ক্লাসপথে কোনও ডিরেক্টরি কীভাবে যুক্ত করবেন সে সম্পর্কে কোনও ধারণা?


1
আপনি কোথায় এটি যুক্ত করার চেষ্টা করছেন তা আমার কাছে পরিষ্কার নয়। আইজে কমান্ড লাইন থেকে? বা প্রকল্পের সম্পত্তিগুলিতে?
হাইকো রুপ

উত্তর:


270

ইন্টেলিজ 13 এ, দেখে মনে হচ্ছে এটি আবার কিছুটা আলাদা। এখানে ইন্টেলিজ 13 এর জন্য নির্দেশাবলী দেওয়া হল:

  1. প্রকল্পের ভিউতে ক্লিক করুন বা উইন্ডোর বাম সীমান্তে "1: প্রজেক্ট" বোতামে ক্লিক করে বা Alt + 1 টিপে এটি লুকিয়ে রাখুন
  2. আপনার প্রকল্প বা উপ-মডিউলটি সন্ধান করুন এবং এটি হাইলাইট করার জন্য এটিতে ক্লিক করুন, তারপরে F4 চাপুন, বা ডান ক্লিক করুন এবং "ওপেন মডিউল সেটিংস" নির্বাচন করুন (ইন্টেলিজজে 14 এ এটি এফ 12 হয়ে গেছে)
  3. নির্ভরতা ট্যাবে ক্লিক করুন
  4. ডানদিকে "+" বোতামটি ক্লিক করুন এবং "জারস বা ডিরেক্টরি ..." নির্বাচন করুন
  5. আপনার পথ সন্ধান করুন এবং ঠিক আছে ক্লিক করুন
  6. "বাছাই করা ফাইলের বিভাগ নির্বাচন করুন" এর সাথে কথোপকথনে, চয়ন করুন Classes(এটির বৈশিষ্ট্যগুলি হলেও), ঠিক আছে এবং আবার ঠিক আছে চাপুন
  7. আপনি এখন আপনার অ্যাপ্লিকেশনটি চালাতে পারেন এবং এটির শ্রেণীর পথে নির্বাচিত পাথ থাকবে

2
সুতরাং আপনি কীভাবে দুটি পৃথক ডিরেক্টরি দিয়ে কনফিগারেশন চালানোর জন্য তৈরি করবেন যা অবশ্যই একের মধ্যে অবশ্যই উপস্থিত থাকতে হবে তবে অন্যটিতে নয়। গ্রহনে আপনি কোনও প্রবর্তন কনফিগারেশনে যেকোন কিছু যুক্ত / সরাতে পারবেন। ইন্টেলিজ কি এটি সমর্থন করে না?
Καrτhικ

9
এটি বেশ পরিষ্কার যে আপনি ক্লাসপাথ পরিবর্তন করতে পারেন রান কনফিগারেশন পরিবর্তন মডিউল ক্লাসপাথ। তবে সঠিক প্রশ্নটি ছিল "অ্যাপ্লিকেশন পরিচালিত প্রোফাইলে ক্লাসপথে ডিরেক্টরি কীভাবে যুক্ত করবেন "। সুতরাং আসলটি uaaquarius দিয়েছিল
পাভেল ভাইজানকিন

ধন্যবাদ ! এই সমস্যাগুলি প্রায় বহু বছর ধরে অনুসন্ধানের পরেও সমাধান হয়েছে!
জোনাসসিজে - মনিকা

1
Step ষ্ঠ পদক্ষেপ আমার জন্য আসে না। আমি ইন্টেলিজে আছি 14. আমার কাছে লাইব নামে একটি ফোল্ডার রয়েছে যেখানে আমার .jar অবস্থিত। ফোল্ডার বা জার নির্বাচন করা কেবল ইন্টেলিজের পথে পার্স করবে। এখনও কাজ করে না
টেকেরু

@ টেকেরু আপনি কি এই বিষয়টি বুঝতে পেরেছেন?
রোশামিশ

91

দেখা যাচ্ছে যে ইন্টেলিজ 11 পদ্ধতি পরিবর্তন করেছে এবং চেক করা উত্তরটি আমার পক্ষে আর কাজ করে না। যদি অন্য কোনও অনুসন্ধান ইঞ্জিনের মাধ্যমে এখানে আসে, আমি কীভাবে এটি ইন্টেলিজ ১১-তে সমাধান করেছি:

  1. প্রোজেক্ট স্ট্রাকচারে যান, মডিউলগুলিতে ক্লিক করুন এবং আপনার মডিউলটিতে ক্লিক করুন
  2. "নির্ভরতা" ট্যাবটি চয়ন করুন
  3. ডানদিকে "+" বোতামটি ক্লিক করুন এবং "জারস বা ডিরেক্টরি ..." নির্বাচন করুন
  4. আপনি যে ডিরেক্টরিটি (আইস) চান তা যুক্ত করুন (নোটটি আপনি বহু-নির্বাচন করতে পারেন) এবং ঠিক আছে ক্লিক করুন click
  5. যে কথোপকথনটি আসবে তাতে "ক্লাস" নির্বাচন করুন এবং "জার ডিরেক্টরি" নির্বাচন করুন না
  6. নিশ্চিত হয়ে নিন যে আপনি সেই চালিত লক্ষ্যটিতে সেই মডিউলটি ব্যবহার করছেন

নোট করুন যে 5 ধাপটি মূল পার্থক্য বলে মনে হচ্ছে। আপনি যদি "জার ডিরেক্টরি" নির্বাচন করেন তবে এটি আইডিইতে হুবহু দেখতে পাওয়া যাবে তবে রানটাইমটিতে পথটি অন্তর্ভুক্ত করবে না। আপনি সত্যের পরে "ক্লাস" বা "জার ডিরেক্টরি" নির্বাচন করেছেন কিনা তা নির্ধারণের কোনও উপায় নেই বলে মনে হয়।


4
এই পোস্ট করার জন্য আপনাকে অনেক ধন্যবাদ। আপনি আমাকে মাত্র এক ঘন্টা বাঁচিয়েছেন।
জন জিয়াং

আইজে 11 এর সাথে আমার আগের মতোই সমস্যা আছে এবং এবার আমার জন্য অপেক্ষা করা উত্তর খুঁজে পেয়ে খুশি হয়েছিল।
সাল

পারফেক্ট। আইজে 12 এর জন্য একই প্রক্রিয়া। 'Java.lang.ClassNotFoundException: com / microsoft / jdbc / sqlserver / SQLServerDriver' সমাধান করার চেষ্টা করার সময় এই পোস্টটি জুড়ে দৌড়ে এই সংযোগ সমস্যার সমাধান করেছে। ধন্যবাদ
jkmurphy1

6
আমি পদক্ষেপ 5 পাচ্ছি না :( ডায়ালগটি কেবল সামনে আসে না
চার্লস উড

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

35

আপনি এক্স-বুটস্ক্লাসপথ / একটি: জাভা অ্যাপ্লিকেশন লঞ্চারের পাথ বিকল্পটি চেষ্টা করতে পারেন । বর্ণনা দ্বারা এটি "ডিফল্ট বুটস্ট্র্যাপ শ্রেণীর পথের সাথে সংযুক্ত করার জন্য নির্দেশিকাগুলি, জেআর সংরক্ষণাগারসমূহ এবং জিপ সংরক্ষণাগারগুলির একটি কোলন-বিচ্ছিন্ন পাথ নির্দিষ্ট করে।"


2
কিভাবে -Xbootclasspath কাজ করে কিছু ডকুমেন্টেশন: docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570
Lambart

3
এটির একটি ভাল উত্তর কারণ এটির জন্য আপনার প্রকল্পের কনফিগারেশনটি পরিবর্তন করার প্রয়োজন নেই। আসলে আমি মনে করি এটি প্রশ্নের সেরা উত্তর দেয়।
চেউই

1
দুর্ভাগ্যক্রমে এটি আমার পক্ষে কার্যকর হয়নি, কারণ এই ক্লাসপাথ থেকে লোড হওয়া সমস্ত ক্লাসের ফলাফল বুটস্ট্র্যাপ শ্রেণীর লোডার দ্বারা লোড করা যায়, যা কোডটি ভঙ্গ করে যে ধরে নেয় যে জাইজ.সি.এল.ক্লাসল্লাস () বাতিল নয়।
এনজল 4'17

@uaaquarius, কেন সরাসরি কমান্ড লাইন স্ট্রিংটি সম্পাদনা করার উপায় নেই? এটি হতাশাব্যঞ্জক।
পেসারিয়ার

@uaaquarius, কেন এটা যে যদি আমি যোগ mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jarঅন্য পদ্ধতি ব্যবহার করে নির্ভরতা যেমন stackoverflow.com/a/16742141/632951 এটি কাজ করে, কিন্তু ব্যবহার করছেন -Xbootclasspath/aতাই নয় কি?
পেসারিয়ার

19

আমি আইডিয়া ৮ ব্যবহার করছি আপনার মডিউল নির্ভরতা ট্যাবে (প্রকল্প কাঠামো সংলাপে)। একটি "মডিউল লাইব্রেরি" যুক্ত করুন। সেখানে আপনি যুক্ত করতে একটি জার ডিরেক্টরি নির্বাচন করতে পারেন। তারপরে নিশ্চিত হয়ে নিন যে রান প্রোফাইলটি চলার সময় সঠিক মডিউলটির ক্লাসপাথ এবং জেডিকে ব্যবহার করছে (এটি রান কনফিগারেশনের কথোপকথনে রয়েছে।



2

ধরুন আপনার ক্লাসপথে আপনার কেবলমাত্র x: টার্গেট / ক্লাস দরকার । তারপরে আপনি এই ফোল্ডারটি কেবল আপনার ক্লাসপথ এবং% IDEA% \ lib \ ধারণা_rt.jar এ যুক্ত করুন। এখন এটি কাজ করবে। এটাই.


4
প্রশ্নটি হল আপনি কীভাবে এই ফোল্ডারটি আইডিইএতে আপনার ক্লাসপথে যুক্ত করবেন?
পেসারিয়ার

0

আপনার ক্লাস ফোল্ডার নির্দিষ্ট করার দরকার নেই। ইন্টেলিজ এটি লোড করতে সক্ষম হওয়া উচিত। "প্রকল্পের সংকলক আউটপুট" ফাঁকা থাকলে আপনি এই ত্রুটিটি পাবেন।

: শুধু নিশ্চিত যে নীচে মান সেট আছে কি না > প্রকল্প - -> প্রকল্প কম্পাইলার আউটপুট প্রকল্প সেটিং আপনার টু projectDir / আউট ফোল্ডারের

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