জাভা 'ডিজিটাল ভেরিয়েবলের মান হিসাবে' লোকালহোস্ট: 10.0 'ব্যবহার করে এক্স 11 উইন্ডো সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না


97

লোকালহোস্টে 10.0 বন্দরে এক্স 11 প্রদর্শন করতে সংযোগ করতে আমার কাছে জাভা ব্যবহার করে একটি স্ক্রিপ্ট রয়েছে

তবে আমি সর্বদা এই ত্রুটি পাই

java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
    at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
    at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:62)
    at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:178)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:142)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:186)
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
    at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:112)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:186)
    at java.awt.Toolkit$2.run(Toolkit.java:849)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:841)
    at ij.io.Opener.openJpegOrGif(Opener.java:367)
    at ij.io.Opener.openImage(Opener.java:220)
    at ij.io.Opener.openImage(Opener.java:249)
    at ij.io.Opener.open(Opener.java:116)
    at ij.IJ.open(IJ.java:1112)
    at ij.macro.Functions.open(Functions.java:2006)
    at ij.macro.Functions.doFunction(Functions.java:129)
    at ij.macro.Interpreter.doStatement(Interpreter.java:205)
    at ij.macro.Interpreter.doBlock(Interpreter.java:515)
    at ij.macro.Interpreter.runUserFunction(Interpreter.java:278)
    at ij.macro.Interpreter.getFactor(Interpreter.java:1200)
    at ij.macro.Interpreter.getTerm(Interpreter.java:1162)
    at ij.macro.Interpreter.getExpression(Interpreter.java:1145)
    at ij.macro.Interpreter.getBooleanExpression(Interpreter.java:881)
    at ij.macro.Interpreter.getLogicalExpression(Interpreter.java:857)
    at ij.macro.Interpreter.getBoolean(Interpreter.java:850)
    at ij.macro.Interpreter.doIf(Interpreter.java:829)
    at ij.macro.Interpreter.doStatement(Interpreter.java:217)
    at ij.macro.Interpreter.doBlock(Interpreter.java:515)
    at ij.macro.Interpreter.doStatement(Interpreter.java:241)
    at ij.macro.Interpreter.doIf(Interpreter.java:831)
    at ij.macro.Interpreter.doStatement(Interpreter.java:217)
    at ij.macro.Interpreter.doStatements(Interpreter.java:195)
    at ij.macro.Interpreter.run(Interpreter.java:99)
    at ij.macro.Interpreter.run(Interpreter.java:65)
    at ij.macro.Interpreter.run(Interpreter.java:75)
    at ij.plugin.Macro_Runner.runMacro(Macro_Runner.java:127)
    at ij.plugin.Macro_Runner.runMacroFile(Macro_Runner.java:112)
    at ij.IJ.runMacroFile(IJ.java:103)
    at ij.ImageJ.main(ImageJ.java:517)

আমি এই সমস্যাটি সমাধান করার জন্য সবকিছু চেষ্টা করেছি:

export DISPLAY=:10.0
export DISPLAY=localhost:10.0

আমি বন্দর ০.০ চেষ্টা করেছিলাম কিন্তু আমি সর্বদা একই ত্রুটি পাই

xhost চেষ্টা করার পরে

xhost +local:all
xhost:  unable to open display ""
xhost:  unable to open display ":10.0"

আমি কীভাবে এটি ঠিক করতে পারি আমি ভেবেছিলাম যে এক্স সার্ভারটি চলছে না তাই আমি চেষ্টা করেছি startxযে এটি তার বন্দরে চলছে

আমার সিস্টেমটি উবুন্টু সার্ভার সংস্করণ 10.04

উত্তর:


37

এই আদেশটি আমাকে সমস্যার সমাধান করতে সহায়তা করেছে:

export DISPLAY=:0

41
unset DISPLAYআমাকে সাহায্য করেছেন (এর সাথে export DISPLAY=:0আমি ত্রুটিটি পেয়েছিCan't connect to X11 window server using ':0'
বেলুচিন

4
আপনি এটি কোথায়
রেখেছেন

4
কিছুক্ষন ভাল - এটি লিনাক্সে কাজ করবে না তারপরে এটিপি সহ এক্সভিএফবি ইনস্টল করা এবং যেকোন স্ক্রিনে এটি চালানো ভাল: এক্সভিএফবি: 1 এবং তারপরে বিল্ড ফেজের ক্ষেত্রে পরিবর্তনশীল সেট করুন - এক্সপোর্ট DISPLAY =: 1 -> এটি পুরোপুরি কার্যকর।
পঙ্কজ কুমার কটিয়ার


এই আচরণের কোনও কারণ?
অন্নাপূর্নি ডি

61

-Djava.awt.headless=trueপ্রারম্ভকালে আপনাকে প্যারামিটার নির্দিষ্ট করতে হবে ।


অনেক ধন্যবাদ তবে আমাকে এটি ঠিক কোথায় নির্দিষ্ট করতে হবে?
এলটারুও

4
থ্রেডে "মূল" java.awt.Je.awt.GraphicsEnomot.c.CheckHeadless (গ্রাফিক্সএনভায়রনমেন্ট.জভা
অনুচ্ছেদ

আপনি কি সুরক্ষা পরিচালক চালাচ্ছেন? যদি তা হয় তবে আপনাকে সম্ভবত এর অনুমতি দিতে হবে।
মাইকেল-ও

4
ধন্যবাদ সমস্যা হল X সার্ভারের অন্য একটি পোর্ট চলমান ছিল
Elteroooo

4
প্রশ্নকারীর প্রোগ্রামটি করতে চায় ij.io.Opener.openJpegOrGif, আমরা অনুমান করতে পারি যে সম্ভবত একটি জিইউআই প্রয়োজন। সুতরাং হেডলেস অন্য ত্রুটি স্থাপিত হবে: java.awt.HeadlessException
নিকোলাস রাউল

41

ডিসপ্লে ভেরিয়েবলটি সরান

unset DISPLAY

এটি বেশিরভাগ ক্ষেত্রে (যেমন অ্যাপ্লিকেশন সার্ভার বা অন্যান্য জাভা ভিত্তিক সরঞ্জাম শুরু করা) সহায়তা করে এবং অনেকগুলি কমান্ড লাইন পরিবর্তন করতে এড়ানো হয়।

এটি ডেডিকেটেড অ্যাপ্লিকেশন-সার্ভার / সরঞ্জাম ব্যবহারকারীর জন্য .bash_ প্রোফাইলে যুক্ত করা আরামদায়কও হতে পারে।


4
এটি আমাকে মোটেই সহায়তা করেনি। আমি এটি পেয়েছি: এডাব্লুটিটি এক্স 11 উইন্ডো সার্ভারটি ব্যবহার করে সংযোগ করতে পারছি না ...
পঙ্কজ কুমার কটিয়ার

যদি আপনার অ্যাপ্লিকেশন অজস্র ব্যবহার করে তবে অবশ্যই আপনাকে DISPLAY সঠিকভাবে সেট করতে হবে। এটি এমন অ্যাপ্লিকেশানগুলির জন্য যা অজানা ব্যবহার করে না।
bebbo

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

17

আমি মনে করি আপনি সুডো মোডে কাজ করছেন lease ব্যবহারকারী মোডে চেকআউট করুন এবং আবার চেষ্টা করুন


4
এটি আমার সমস্যাও ছিল। মূল হিসাবে চালাতে সক্ষম হবেনা কি অদ্ভুত বলে মনে হচ্ছে, তাই না?
জাভাজাভাভা

কেন আমি সুডো ব্যবহার করতে পারি না?
আন্ড্রেয়া বোরগোগেলি আবেদেতুতি

@ জাভাজাভাভা ইয়ুপ
হর্ষ ভি পিল্লাই

9

যদি কেউ সিআই (জেনকিনস, ..) এ মেভেন-শিফারফায়ার-প্লাগইনটির মাধ্যমে স্বয়ংক্রিয় ইউনিট পরীক্ষা চালানোর চেষ্টা করে এবং উপরের উল্লিখিত ত্রুটিটি পেয়েছে তবে আপনার নিশ্চিত ফায়ার প্লাগইন কনফিগারেশন আপডেট করতে ভুলবেন না:

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>${maven-surefire-plugin.version}</version>
     <configuration>
            <systemPropertyVariables>
                <java.awt.headless>true</java.awt.headless>
            </systemPropertyVariables>
      </configuration>
</plugin>

4
এটি গ্রেডে কীভাবে করা যায় এবং এতে কীভাবে সম্পত্তি মান সেট করা যায়
সোবিত শর্মা


6

আমাকে হিসাবে লগ-ইন -y -X পরিবর্তে কাজ করেন।

নীচের মত আপনি যদি অবিশ্বস্ত এক্স 11 পেয়ে থাকেন তবে তার পরিবর্তে - ওয়াই পতাকাটি চেষ্টা করুন (যদি আপনি হোস্টকে বিশ্বাস করেন):

সতর্কতা : অবিশ্বস্ত এক্স 11 ফরোয়ার্ডিং সেটআপ ব্যর্থ হয়েছে: xauth কী ডেটা উত্পন্ন হয়নি


5

হেডলেস ফেডোরা 22 সহ রাস্পবেরি পাই 2 তে গ্লাসফিশ ইনস্টল করার ব্যর্থ চেষ্টা করার কয়েক দিন পরে, নীচে আমার জন্য কোনও বাধা ছাড়াই কাজ করেছে

 unset DISPLAY
java -Djava.awt.headless=true -jar glassfissh-installer-v2ur2-b04-linux.jar

থেকে আমার সাহায্য পেয়েছিলাম এখানে


4

প্রথম: এক্সকিয়ার্টজ শুরু করুন

দ্বিতীয়: ssh -X ব্যবহারকারী @ ip_address

...: আপনার প্রক্রিয়া শুরু করুন

আপনি যদি ssh করেন এবং তারপরে XQuartz শুরু করেন তবে আপনি ত্রুটি পাবেন


4

এটি আমার সমস্যা সমাধান করেছে

xhost +

তবে সচেতন হন যে xhost +প্রমাণীকরণকে সম্পূর্ণ নিষ্ক্রিয় করে এবং প্রত্যেককে আপনার স্ক্রিনের সমস্ত অ্যাপ্লিকেশন অ্যাক্সেস করার অনুমতি দেয়।

xhost +si:localuser:root যথাযথ প্রমাণীকরণের সাথে একই রকম কাজ করে বলে মনে হচ্ছে।


3

জেনকিনসের বিল্ড ফেজে প্রথমে এটি করুন যদি / ইত্যাদি / প্রোফাইল ব্যবহার করে বা সেট করা থাকে:

unset DISPLAY
export DISPLAY=:0

তারপরে এই সম্পত্তিটি হয় জাভা কোডে বা মেভেন ব্যবহার করে সেট করুন: -জাজা.ওট.হেডলেস = মিথ্যা


2

আমি এক্সিং ব্যবহার করছিলাম এবং অনুরূপ ত্রুটি পেয়েছি। সমস্যা সমাধানের জন্য নিম্নলিখিত পদক্ষেপ নেওয়া হয়েছিল:

  1. জিমিং লঞ্চে বাক্সটিতে অ্যাক্সেস নিয়ন্ত্রণ পরীক্ষা করুন।
  2. পুট্টিতে নিম্নলিখিত কমান্ডটি চালিত: DISPLAY=XXX.XXX.XXX.XX:0.0; export DISPLAY

XXX.XXX.XXX.XXআপনার আইপি ঠিকানা দিয়ে প্রতিস্থাপন করুন ।


আমি একই কনফিগারেশনে আছি, তবে এটি কার্যকর হয়নি। X0.hosts ফাইলে আইপি এক্সিকিউটিং এক্স 11 যুক্ত করার দরকার ছিল
ক্রিস্টোফ মোইন

2

সমাধান হয়েছে। আমি স্রেফ লগআউট এবং xorg সঙ্গে লগইন!


4
রফতানুন DISPLAY =: 0 বা রফতানি DISPLAY =: 1 আমার জন্য কাজ করে না। লগ আউট এবং লগ ইন আমার জন্য এটি সমাধান।
অপটিমাস

2

আপনি যদি su ব্যবহার করে ডিসপ্লে রফতানি করার চেষ্টা করছেন এবং এটি এখনও কাজ করে না। এটিই আমার পক্ষে কাজ করেছিল। সুডো ব্যবহারকারীদের জন্য এক্স 11 ফরোয়ার্ডিং ব্যবহার করে দেখুন।

Ssh এর সাহায্যে -x বিকল্পটি ব্যবহার করে দূরবর্তী হোস্টটি সংযুক্ত করুন।

# ssh -X root@remote-host

এখনকার ব্যবহারকারীর জন্য কুকি সেটটি তালিকাভুক্ত করুন।

# xauth list $DISPLAY
    node01.thegeekdiary.com/unix:10  MIT-MAGIC-COOKIE-1  dacbc5765ec54a1d7115a172147866aa
# echo $DSIPLAY
    localhost:10.0

সুডো ব্যবহার করে অন্য ব্যবহারকারীর অ্যাকাউন্টে স্যুইচ করুন। উপরের কমান্ড আউটপুট থেকে কুকিটি সুডো ব্যবহারকারীর সাথে যুক্ত করুন।

# sudo su - [user]
# xauth add node01.thegeekdiary.com/unix:10  MIT-MAGIC-COOKIE-1  dacbc5765ec54a1d7115a172147866aa

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

# export DISPLAY=localhost:10.0

উত্স: https://www.thegeekdiary.com/how-to-set-x11-forwarding-export-remote-display-for-users-Wo-switch-accounts-used-sudo/


1

আপনি যদি হডসনে এই ত্রুটিটি দেখতে পান তবে আপনার হোম ডিরেক্টরি থেকে জাভা ডিরেক্টরিটি সরানোর চেষ্টা করুন, এটি আপনার পক্ষে কাজ করতে পারে।


1

মাইকেল-ও সমস্যা সমাধানের জন্য কার্যকর দৃষ্টিভঙ্গি দিয়েছিল। এটি সমাধানের আর একটি উপায় হ'ল পুট্টি কনসোল দিয়ে সার্ভার শুরু করা।


আপনি সম্ভবত আরও কিছু ব্যাখ্যা করতে পারেন যে কিভাবে কাজ করবে? (আমি কখনও পুট্টি ব্যবহার করি নি)
মির্কি

1

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


1

নীচের কমান্ডের সাথে $ DISPLAY ভেরিয়েবল সেট করা আছে কিনা তা পরীক্ষা করুন:

প্রতিধ্বনি $ প্রদর্শন

যদি ডিসপ্লে ভেরিয়েবল সেট না করা থাকে তবে সেট করতে নীচের কমান্ডটি চালান, (এটি সেট করা থাকলেও আপনার সেশনের জন্য আপনার নীচে একটি থাকতে পারে)

এক্সপোর্ট DISPLAY =: 0.0

পুট্টিতে এক্স ডিসপ্লে লোকেশনও রয়েছে: 0.0


1

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



0

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


0

আপনি যদি এসএসএস দ্বারা লগ ইন করার পরে কোনও রিমোট সার্ভারে অ্যাপ্লিকেশন শুরু করেন তবে আর একটি উপায় হ'ল -xপ্যারামিটার দিয়ে ssh শুরু করা বা ForwardX11 noআপনার মধ্যে যুক্ত করা /etc/ssh/ssh_config। এই ক্ষেত্রে ssh পরিবেশের পরিবর্তনশীল DISPLAY তৈরি করবে না।


0

আমার জন্য সমস্যাটি ছিল যে xorg-x11-xauth ইনস্টল করা হয়নি। আমি এটি ইনস্টল করেছি এবং তারপরে এটি কাজ করেছে।

আমার এখন যে প্যাকেজগুলি রয়েছে তা হ'ল:

  • libX11-common-1.6.3-2.el6.noarch
  • libX11-1.6.3-2.el6.i686
  • libX11-1.6.3-2.el6.x86_64
  • xorg-x11-drv-ati-fiware-7.6.1-2.el6.noarch
  • xorg-x11-xauth-1.0.9-1.el6.x86_64

0

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


0

অন্য ব্যবহারকারীর কাছে পরিবর্তন করুন এবং রুট ব্যতীত চেষ্টা করুন। এটা আমার জন্য কাজ করে.



0

উবুন্টু 17.10 এর জন্য এক্স ভার্চুয়াল ফ্রেম বাফার ইনস্টল করুন (xvfb)

apt install xvfb

এবং এই লাইনগুলি / ইত্যাদি / প্রোফাইল ফাইলে যুক্ত করেছে ...

# Start the X virtual frame buffer (Xvfb)
if [ -f /usr/X11R6/bin/Xvfb ]; then
/usr/X11R6/bin/Xvfb :1 -screen 0 1366x768x32
fi

# Set the DISPLAY variable for the X virtual frame buffer (Xvfb)
export DISPLAY=localhost:1.0

4
এখন আমি কেবল "থ্রেডে ব্যতিক্রম" জাভা.ওয়্যাট.এইচটিউইরর: ডিআইআইএসএল ভেরিয়েবলের মান হিসাবে 'লোকালহোস্ট: 1.0' ব্যবহার করে এক্স 11 উইন্ডো সার্ভারের সাথে সংযোগ করতে পারছি না। " উবুন্টু 16.04 এ। এক্সভিএফবি বাইনারি এখন / ইউএসআর / বিনে অবস্থিত বলে মনে হচ্ছে, / ইউএসআর / এক্স 11 আর 6 / বিন নয়, তবে আমাকে "স্ক্রীন 0 (ইই) যুক্ত করতে পারে নি" gives
ক্রিস জেনস 0

0

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


0

আমার সমস্যা ফায়ারওয়াল নিয়ে ছিল with এটি অস্থায়ীভাবে অক্ষম করে।

[সম্পাদনা] এবং, সার্ভারের হোস্টনামটি অন্য আইপিটির দিকে নির্দেশ করছে। এটি কেবল স্থানীয় সার্ভারে সেট করুন। strace xclockএই সমস্যাটি ডিবাগ করতে সহায়তা করেছে।


0

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

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