কিভাবে গ্রহন থেকে java.library.path সেট করবেন


209

আমি কীভাবে java.library.pathপুরো একিপ্লিজ প্রকল্পের জন্য সেট করতে পারি ? আমি একটি জাভা গ্রন্থাগার ব্যবহার করছি যা ওএস নির্দিষ্ট ফাইলগুলির উপর নির্ভর করে এবং এটির জন্য একটি সন্ধানের প্রয়োজন .dll/ .so/ .jnilib। কিন্তু অ্যাপ্লিকেশনটি সর্বদা একটি ত্রুটি বার্তায় প্রস্থান করে যে এই ফাইলগুলি লাইব্রেরির পথে পাওয়া যায় না।

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


1
আমি এটি একটি ভিএম যুক্তি হিসাবে যুক্ত করে করেছি এবং এটি কার্যকর হয়েছে। আপনি ঠিক কিভাবে এটি করেছেন?
মাইকেল

উত্তর:


297

লাইব্রেরির পাথের সাথে গোলযোগ করবেন না! গ্রহন তো নিজেই তৈরি করে!

পরিবর্তে, আপনার প্রকল্পগুলির জন্য লাইব্রেরি সেটিংসে এবং প্রতিটি জার / ইত্যাদির জন্য যা একটি নেটিভ লাইব্রেরি প্রয়োজন, এটি লাইব্রেরি ট্যাবে প্রসারিত করুন । সেখানে গাছের দৃশ্যে প্রতিটি লাইব্রেরিতে উত্স / জাভাদোক এবং স্থানীয় গ্রন্থাগারের অবস্থানের আইটেম রয়েছে।

বিশেষত: নির্বাচন করুন Project, ডান ক্লিক করুন -> বৈশিষ্ট্য / জাভা বিল্ড পাথ / লাইব্রেরি ট্যাব, একটি .jar নির্বাচন করুন, এটি প্রসারিত করুন, নেটিভ লাইব্রেরির অবস্থান নির্বাচন করুন , সম্পাদনা ক্লিক করুন , ফোল্ডার চয়নকারী ডায়ালগ প্রদর্শিত হবে)

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

নেটিভ লাইব্রেরির অবস্থান


6
তবে আপনার যদি একাধিক ফোল্ডার যুক্ত করতে হয় তবে কীভাবে এটি কাজ করবে?
ড্যান

2
এটা একটা ভালো প্রশ্ন. আপনার কাছে কেন একটি জারের জন্য দেশী পাঠাগারগুলির একাধিক ফোল্ডার রয়েছে? আমি নিশ্চিত যে এমন কোনও উপায় আছে যেখানে আপনি নেটিভ লাইব্রেরিগুলিকে নিজেকে জারে এম্বেড করতে পারেন, তাই যাওয়ার উপায়টি হতে পারে?
জন গার্ডনার

1
আমি একটি লিগ্যাসি প্রকল্পে কাজ করছি যার উপর আমার খুব কম নিয়ন্ত্রণ রয়েছে। আমি অবশ্যই প্রকল্পের কাঠামো পরিবর্তন করতে পারি না। এই মুহুর্তের জন্য আমার কর্মসংস্থানটি হ'ল আমার পথের উপরে সমস্ত কিছু রাখা - তবে এটি এত সুন্দর নয়।
ডান

1
ওএসের উপর নির্ভর করে, আপনি এমন একটি ডিরেক্টরি তৈরি করতে পারেন যা অন্য লাইব্রেরিতে সমস্ত প্রতীকী লিঙ্ক? বা কমপক্ষে উন্নয়নের উদ্দেশ্যে আপনি সমস্ত libs একটি ডিরেক্টরিতে অনুলিপি করতে পারেন।
জন গার্ডনার 16

2
আমি এই কাঠি করতে পারি না। আমি নেটিভ লাইব্রেরির পাথ যুক্ত করতে পারি, তবে আমি যখন পুরো পথে ফিরে যেতে ওকে ক্লিক করি তখন আবার প্রকল্পের বৈশিষ্ট্যগুলিতে ঝাঁপ দাও, এটি "কিছুই নয়" বলে। আমি গ্রহণ করছি
ইন্দিগো

37

আপনি যদি এটি ভিএম যুক্তি হিসাবে যুক্ত করে থাকেন তবে নিশ্চিত হয়ে নিন যে আপনি এটির সাথে উপসর্গ করেছেন -D:

-Djava.library.path=blahblahblah...

3
এই পোস্টটি দেখুন: stackoverflow.com/a/2309723/510583 । -ডাজা.লিবারি.পাথ = "$ {ওয়ার্কস্পেস_লোক: প্রকল্প} \ lib; $ v এনভি_ভার: পাঠ}"
লিও

23

অনুমোদিত উত্তরে বর্ণিত উপায় ব্যতীত, আপনার প্রকল্পে যদি আপনার একক নেটিভ libs থাকে তবে অন্য উপায় আছে।

  • প্রকল্পের বৈশিষ্ট্যগুলিতে-> জাভা বিল্ড পাথ-> ট্যাব "উত্স" আপনার উত্স-ফোল্ডারগুলির একটি তালিকা রয়েছে
  • প্রতিটি প্রবেশের জন্য, "নেটিভ লাইব্রেরি অবস্থানগুলি" রয়েছে, যা কর্মক্ষেত্রের মধ্যে পাথগুলিকে সমর্থন করে।
  • এটি Eclipse এটিকে আপনার যুক্ত করে তুলবে java.library.path

2
অসাধারণ!!!! অনেক ধন্যবাদ!!! যে আমার সমস্যা সমাধান। আমার প্রকল্প এবং একটি জারে dylib যুক্ত করা প্রয়োজন। দেশীয় গ্রন্থাগারের অবস্থান সেট করে!
ufk

11

প্রদত্ত অ্যাপ্লিকেশন লঞ্চের জন্য, আপনি জিমের কথা মতো এটি করতে পারেন।

আপনি যদি এটি পুরো ওয়ার্কস্পেসের জন্য সেট করতে চান তবে আপনি এটিতেও সেট করতে পারেন

Window->
  Preferences->
    Java->
      Installed JREs

প্রতিটি জেআরই-এর একটি "ডিফল্ট ভিএম যুক্তি" থাকে (যা আমি বিশ্বাস করি যে কোনও ভিএম আরগ রান রান কনফিগারেশনের জন্য সেট করা থাকলে সম্পূর্ণ উপেক্ষা করা হবে।)

এমনকি আপনি বিভিন্ন প্যারামিটার সহ বিভিন্ন জেআরই / জেডিকে সেট আপ করতে পারেন এবং কিছু প্রকল্পের একটি ব্যবহার করতে পারেন, অন্য প্রকল্পগুলি অন্য ব্যবহার করে।


8

আপনি কেবল যোগ -Djava.library.path=yourPathকরতে পারেন eclipse.ini


6

আপনার কেবল *.dllফাইল যুক্ত করুনc:/windows

আপনি অনুসরণ কোডগুলি থেকে java.library.path পেতে পারেন: এবং তারপরে যে কোনও পথে আপনার dll ফাইল যুক্ত করুন

import java.util.logging.Logger;

public class Test {


    static Logger logger = Logger.getLogger(Test.class.getName());
    public static void main(String[] args) {
    logger.info(System.getProperty("java.library.path"));
    }
}

এর অর্থ হ'ল আপনার প্রকল্পটি ব্যবহার করা প্রত্যেকেরও তাদের সেখানে রাখা দরকার।
xtofl

এর জন্য ধন্যবাদ. ডিএলএল স্থাপনের ধারণাটি c:/windowsআমার কাছে প্রমাণিত হয়েছিল যে এটি কেবল একটি পথের সমস্যা এবং ডিএলএলগুলির কোনও সমস্যা নয়।
vegemite4me

5

উপরের কোনও সমাধানই আমার পক্ষে কাজ করেনি (জেডিকে ১.7.২০১৫ সহ একলিপস জুনো)। জাভা কেবল তখন আমি লাইব্রেরিগুলি সন্ধান করতে পারি যখন আমি সেগুলি প্রজেক্ট_ফোল্ডার / লাইব থেকে প্রজেক্ট_ফোল্ডারে স্থানান্তরিত করেছি।


কি? কেন এটা গুরুত্বপূর্ণ হওয়া উচিত ..? ও_ও
ক্যাম্পা

5

আমি মনে করি সেট স্থাপনের আরও একটি কারণ আছে java.library.path। সাবভার্সন অনেকগুলি লাইব্রেরি নিয়ে আসে এবং java.library.pathসংযোজন না করা পর্যন্ত Eclipse এগুলি দেখতে পাবে না । উদাহরণস্বরূপ আমি ওএস-এক্স এ আছি, সুতরাং গ্রন্থাগারগুলি অন্তর্গত\opt\subversion\lib । তাদের অনেকগুলি রয়েছে এবং আমি তাদের যেখানে রাখতে চাই তা রাখতে চাই (সেগুলি কোনও স্ট্যান্ডার্ড লিব ডিরেক্টরিতে কপি করবেন না)।

প্রকল্প সেটিংস এটি ঠিক করবে না।


তারপরে, আমার কোথায় java.library.path পরামিতি যুক্ত করার দরকার আছে?
ইআরআরএলএল

4

রান
ক্লিক করুন ডিবাগ ক্লিক করুন ...
নতুন জাভা অ্যাপ্লিকেশন ২ য় বাক্সে
আর্গুমেন্ট ট্যাবে ক্লিক করুন
(ভিএম আর্গুমেন্টস) -ডি এন্ট্রি যুক্ত করুন

-Xdebug -verbose:gc -Xbootclasspath/p:jar/vbjorb.jar;jar/oracle9.jar;classes;jar/mq.jar;jar/xml4j.jar -classpath -DORBInitRef=NameService=iioploc://10.101.2.94:8092/NameService  

ইত্যাদি ...


1
এছাড়াও - রান কনফিগারেশনে, "সাধারণ" ট্যাবে যান এবং রান কনফিগারেশনটি সংরক্ষণ করতে আপনার প্রকল্পে একটি স্থান চয়ন করুন। এটি আপনাকে সেই রান কনফিগারেশন (xxxx.launch ফাইল) যাচাই করতে দেয় যাতে আপনার দলের অন্যরা এটি পুনরায় ব্যবহার করতে পারে।
স্কট স্ট্যাঞ্চফিল্ড

3

আর একটি সমাধান হ'ল 'রান কনফিগারেশন' খুলুন এবং তারপরে 'পরিবেশ' ট্যাবটিতে {পথ, মান} দম্পতিটি সেট করুন}

উদাহরণস্বরূপ, প্রকল্পের মূলটিতে অবস্থিত একটি 'lib' ডিরেক্টরি যুক্ত করতে,

    Path  <-  ${workspace_loc:name_of_the_project}\lib

কিন্তু হয়তো সরাসরি VM- র যুক্তি -Djava.library.pathমধ্যে আর্গুমেন্ট ট্যাব?
ক্যাম্পা


1

আমি ম্যাক ওএস এক্স ইয়োসেমাইট এবং নেটবিয়ানস ৮.০২ ব্যবহার করছি, আমি একই ত্রুটি পেয়েছি এবং আমি যে সহজ সমাধান পেয়েছি তা উপরের মত, এটি আপনাকে যখন প্রকল্পে নেটিভ লাইব্রেরি অন্তর্ভুক্ত করার প্রয়োজন হয় তখন কার্যকর useful নেটবিনের জন্য পরবর্তী কাজটি করুন:

1.- Right click on the Project
2.- Properties
3.- Click on RUN
4.- VM Options: java -Djava.library.path="your_path"
5.- for example in my case: java -Djava.library.path=</Users/Lexynux/NetBeansProjects/NAO/libs>
6.- Ok

আমি আশা করি এটি কারওর জন্য কার্যকর হতে পারে। আমি যে লিঙ্কটি সমাধানটি পেয়েছি তা এখানে: java.library.path - এটি কী এবং কীভাবে ব্যবহার করতে হয়


0

কখনও কখনও আমরা প্রকল্পে সরাসরি ডান ক্লিক করে জাভা বিল্ড পাথ পেতে পারি না। তারপরে বৈশিষ্ট্যগুলিতে যান ...রাইট ক্লিক করুন এবং বৈশিষ্ট্য যান

তারপরে জাভা বিল্ড পাথটিতে ক্লিক করুনসম্পত্তি স্ক্রেন

বাহ্যিক বয়াম যুক্ত ক্লিক করুন

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


0

এখানে আরও একটি সংশোধন করা হয়েছে:

আমার বিল্ড সিস্টেম (গ্রেডল) গ্রহপদ্ধতি নির্মাণের পথে একটি প্রয়োজনীয় নেটিভ লাইব্রেরি (dll) যুক্ত করেছে (প্রকল্পে ডান ক্লিক করুন -> বৈশিষ্ট্য -> জাভা বিল্ড পাথ -> গ্রন্থাগার)। বিল্ড সিস্টেমকে বলা হয় যে গ্রহনযোগ্য ক্লাসপথে নেটিভ ডেল লাইব্রেরি যুক্ত না করা সমস্যার সমাধান করে।



-1

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

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