object DisplaySetup
Checks that a graphical display can be reached before the first window is created and explains what to do when it cannot.
On Linux, the standard JDK only talks to X11. On a Wayland desktop (Fedora, Ubuntu, ...)
that works through Xwayland, except when the program runs in a sandbox that was not
given X11 access. The typical case is IntelliJ IDEA installed as a Flatpak: the IDE
itself runs natively on Wayland, but the student's program then fails with
java.awt.AWTError: Can't connect to X11 window server.
Two things are done here:
- if the JDK ships a Wayland toolkit (the JetBrains Runtime does) and X11 is clearly unavailable, that toolkit is selected so that the program works anyway;
- if opening the display fails, a diagnosis with the probable cause and the fix is printed on the standard error output before the error is rethrown.
- Alphabetic
- By Inheritance
- DisplaySetup
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def openingDisplay[A](op: => A): A
Runs
op, which is expected to be the first call that opens the display.Runs
op, which is expected to be the first call that opens the display. When it fails because no display can be reached, prints a diagnosis and rethrows.- A
the result type of
op- op
the code opening the display
- returns
the result of
op
- def prepare(): Unit
Must be called before any AWT or Swing class is touched.
Must be called before any AWT or Swing class is touched. Selects the Wayland toolkit when X11 cannot be used and the running JDK has one. Safe to call several times.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated