গ্রোভি শেল সতর্কতা "প্রিফেসের রুট নোডটি খুলতে / তৈরি করতে পারেনি ..."


188

আমি groovyshউইন্ডোজ 8 এ গ্রোভি শেল ( ) খোলার চেষ্টা করেছি এবং নিম্নলিখিত ফলাফলটি পেয়েছি:

java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs 
at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.

উপরের বার্তাটি মুদ্রণের পরে শেলটি প্রত্যাশা অনুযায়ী শুরু হয়েছিল।


3
এটি একটি বাগের কারণে রয়েছে: বাগস.জভা
ক্রিস্টোফ

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

2
এটি উইন্ডোজ 10 এ এখনও পরিচিত জাভা বাগ এবং 112 আপডেট করে an
ডেভিড.পিএফএফএক্স

উত্তর:


328

ডেনিস উত্তর সঠিক। তবে আমি সমাধানটি আরও বিস্তারিতভাবে ব্যাখ্যা করতে চাই (উইন্ডোজ ব্যবহারকারীর জন্য):

  1. আপনার স্টার্ট মেনুতে যান এবং regeditঅনুসন্ধানের ক্ষেত্রে টাইপ করুন ।
  2. পাথ নেভিগেট করুন HKEY_LOCAL_MACHINE\Software\JavaSoft(উইন্ডোজ 10 এর এখন এখানে রয়েছে বলে মনে হচ্ছে HKEY_LOCAL_MACHINE\Software\WOW6432Node\JavaSoft:)
  3. জাভাসফট ফোল্ডারে রাইট ক্লিক করুন এবং New-> এ ক্লিক করুনKey
  4. নতুন কীটির নাম দিন Prefsএবং সমস্ত কিছু কাজ করা উচিত।

বিকল্পভাবে, *.regনিম্নলিখিত বিষয়বস্তু সহ একটি ফাইল সংরক্ষণ এবং চালিত করুন:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs]

7
এটি অগ্রগতিভাবে করা সম্ভব?
ফেসবুকে

12
আমি নিশ্চিত করতে পারি যে HKEY_CURRENT_USER এর অধীনে কাজ করা হলে এটি কাজ করবে না। আরও ভাল প্রশ্ন, কেন একটি জাভা ভিত্তিক পণ্য উইন্ডোজ রেজিস্ট্রিতে নিজেকে বেঁধে রাখছে?
avgvstvs

5
কোনও গ্রাহক অ্যাপ্লিকেশনের পক্ষে ব্যবহারকারীর যেতে হবে এবং রেজিস্ট্রিটি সহকারে নেওয়া উচিত নয়। কেন জাভা সর্বদা এর মতো অর্ধ-সমাধান প্রয়োগ করে।
এল ম্যাক

15
আমার উইন্ডোজ 10 ইনস্টলটিতে উপরে উল্লিখিত দুটি মূল পাথ রয়েছে, আমার ইনস্টলেশনটি ঠিক করে HKEY_LOCAL_MACHINE \ সফ্টওয়্যার \ জাভাসফটকে HKEY_LOCAL_MACHINE \ সফটওয়্যার নয় \ WOW6432 নোড \ জাভাসফট
gt124

2
উইন্ডোজ 10 এ এখনও পার্ফস ফোল্ডারের জন্য সঠিক অবস্থানটি রয়েছেHKEY_LOCAL_MACHINE\Software\JavaSoft
আর্থার

72

আমি নিম্নলিখিত রেজিস্ট্রি কী নিজেই তৈরি করে সমস্যার সমাধান করতে পেরেছি:

HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs

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

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

উইন্ডোজ 10
তেও

45

এটি আসলে একটি জেডিকে বাগ। এটি কয়েক বছর ধরে বেশ কয়েকবার প্রতিবেদন করা হয়েছে, তবে কেবল 8139507 এ অবশেষে ওরাকল এটিকে গুরুত্ব সহকারে গ্রহণ করেছিলেন।

সমস্যাটি ছিল জেডিকে উত্স কোডের জন্য WindowsPreferences.java। এই শ্রেণিতে, উভয় নোড userRootএবং systemRootস্থির হিসাবে ঘোষণা করা হয়েছিল:

/**
 * User root node.
 */
static final Preferences userRoot =
     new WindowsPreferences(USER_ROOT_NATIVE_HANDLE, WINDOWS_ROOT_PATH);

/**
 * System root node.
 */
static final Preferences systemRoot =
    new WindowsPreferences(SYSTEM_ROOT_NATIVE_HANDLE, WINDOWS_ROOT_PATH);

এর অর্থ হ'ল প্রথমবারের মতো ক্লাসটি উভয় স্থিতিশীল ভেরিয়েবলগুলি রেফারেন্স করা হবে এবং এর মাধ্যমে HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs(= সিস্টেম ট্রি) রেজিস্ট্রি কী তৈরি করার চেষ্টা করা হবে যদি এটি ইতিমধ্যে বিদ্যমান না থাকে।

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

জুন ২০১K সালে জেডিকে উত্সের প্রতিশ্রুতিবদ্ধ একটি ফিক্স রয়েছে এবং এটি জাভা 9 এর পরে রয়েছে। জাভা 8 এর একটি ব্যাকপোর্টও রয়েছে যা u202 এ রয়েছে।

আপনি যা দেখছেন তা হ'ল জেডকে-র অভ্যন্তরীণ লগার থেকে একটি সতর্কতা। এটি ব্যতিক্রম নয়। আমি বিশ্বাস করি যে সতর্কতাটি নিরাপদে উপেক্ষা করা যেতে পারে .... যদি না ব্যবহারকারী কোডটি প্রকৃতপক্ষে সিস্টেমের পছন্দগুলি না চায় তবে এটি খুব কমই ঘটে।

বোনাস তথ্য

জাভা 1.7.21 এর পূর্ববর্তী সংস্করণগুলিতে বাগটি নিজেকে প্রকাশ করে নি, কারণ ততক্ষণে জেআরই ইনস্টলার HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefsআপনার জন্য রেজিস্ট্রি কী তৈরি করবে এবং এটি বাগটি কার্যকরভাবে আড়াল করবে। অন্যদিকে আপনার মেশিনে একটি জেআরই রাখার জন্য আপনাকে ইনস্টলার চালানোর দরকার পড়েনি, বা কমপক্ষে এটি সান / ওরাকলের অভিপ্রায় নয়। আপনি যেমন জানেন যে ওরাকল .tar.gzঅনেক বছর ধরে উইন্ডোজের জন্য জেআরই ফর্ম্যাটে বিতরণ করে আসছে।


এত গভীর বিশ্লেষণের জন্য ধন্যবাদ। আপনি উল্লেখ করেছেন যে ইস্যু 8139507 , জানায় যে বাগটি
জেডিকে

3
@realsonic। এতে যোগ করা হচ্ছে: মনে হচ্ছে অবশেষে ওরাকল এই ফিক্সটির ব্যাকপোর্টিংয়ের কাছাকাছি চলে গেছে। এটি 8u202স্থির করা হয়েছে । (30Sep2018 হিসাবে জাভা 8 এর সর্বশেষ রিলিজ u181 তাই ফিক্সটি ব্যাকপোর্ট করা হয়েছে তবে এখনও প্রকাশিত সংস্করণে নেই)
পেরেট

30

যদি কেউ উইন্ডোজের 64৪-বিট সংস্করণে এটি সমাধান করার চেষ্টা করছেন, আপনাকে নিম্নলিখিত কীটি তৈরি করতে হবে:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Prefs

9
-৪-বিট উইন্ডোজ on-তে একটি 64৪-বিট জেভিএম ব্যবহার করার সময় আমি এই ত্রুটিটি পেয়েছি এবং ডেনিস এবং এমকোর্স প্রস্তাবিত সমাধানটি আমার পক্ষে ঠিক কাজ করেছে। সম্ভবত Wow6432 নোড সমাধানটি 64-বিট উইন্ডোতে 32-বিট জেভিএমগুলির জন্য।
স্কট জনসন

7

সমস্যাটি হ'ল সহজ কনসোল রেজিস্ট্রি সম্পাদনা করতে পারে না। হাতে রেজিস্ট্রি সম্পাদনা করার দরকার নেই, কেবল groovyshএকবার প্রশাসনিক priveleges দিয়ে চালু করুন । পরবর্তী সমস্ত লঞ্চ ত্রুটি ছাড়াই কাজ করে।


2
ধন্যবাদ, আমি অন্যদের এটির চেষ্টা করার পরামর্শ দেব, এটির সহজ সমাধান :)
আদিত্য টি

1
সবচেয়ে সহজ উত্তরটি অবশ্যই শীর্ষে থাকা উচিত I
কেবি

2

উইন্ডোজ 8 64 বিটে অ্যাপাচি জমিটার শুরু করার সময় একই সমস্যা ছিল:

[]apache-jmeter-2.13\bin>jmeter
java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs     at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.

Mkorsch ব্যাখ্যা সহ ডেনিস ট্রাব সমাধান সফলভাবে ব্যবহৃত হয়েছে। অথবা আপনি এক্সটেনশান "রেগ" দিয়ে একটি ফাইল তৈরি করতে এবং এতে নিম্নলিখিতটিতে লিখতে পারেন:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs]

... তারপর এটি কার্যকর।


1

আমি নিম্নলিখিত বার্তাটি পাচ্ছিলাম:

Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002

এবং এটি এই রেজিস্ট্রি কীগুলির তৈরির পরে চলে গেছে, আমার 64৪ বিট তাই আমি কেবল এটিই চেষ্টা করেছি।

32 bit Windows
HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs

64 bit Windows
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Prefs

1

এটা আমার সাথে ঘটেছিল।

সম্ভবত জাভায় রেজিস্ট্রি কী তৈরি করার অনুমতি নেই বলেই এটি ঘটেছে।

দেখুন: জাভা: java.util.Preferences ব্যর্থ


ভাল, আরও স্পষ্টভাবে এটি কারণ জেডিকে একটি বাগ আছে in আপনার উত্তরের লিঙ্কটিতে গৃহীত উত্তর দেখুন।
পিটারহ

এটি আসলে কোনও বাগ নয় - মেশিন-প্রশস্ত সেটিংস কেবল মেশিন প্রশাসক ব্যবহারকারীদেরই অনুমোদিত। runasস্থানীয় অ্যাডমিন ব্যবহারকারী হিসাবে আপনার অ্যাপ্লিকেশন চালানোর জন্য ব্যবহার করুন এবং এটি আনন্দের সাথে HKLM এর অধীনে রেজিস্ট্রি কী তৈরি করবে। জাভা যা নেই তা হ'ল এলিভেটেড পারমিসন জিজ্ঞাসা করার একটি ব্যবস্থা (যেমন আদর্শভাবে এটি উইন্ডোজ ইউএসি ব্যর্থ হওয়ার পরিবর্তে আহ্বান করত - এটি বিশ্বব্যাপী ভাল ধারণা কিনা তা প্রশ্নবিদ্ধ)।
ddimitrov

0

সমস্যাটি হ'ল নিখরচায় নিবন্ধকের কী key এটি ম্যানুয়ালি তৈরি করা যেতে পারে

অথবা

এটি একবার প্রশাসক হিসাবে প্রোগ্রাম চালিয়ে স্বয়ংক্রিয়ভাবে তৈরি করা যেতে পারে । এটি প্রোগ্রামটিকে প্রয়োজনীয় অনুমতিগুলি দেবে এবং যখন এটি স্বাভাবিক হিসাবে চালানো হবে তখনও এটি সঠিকভাবে কাজ করবে।

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