I have a small webdriver.io project just for experimenting with it for the first time. I now wanted to add allure reports but when I try to run allure open
I get the following exception and I have no idea where I have to look to resolve this:
Starting web server...
2021-05-04 22:06:43.669:INFO::main: Logging initialized @349ms to org.eclipse.jetty.util.log.StdErrLog
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
at java.base/java.lang.Runtime.load0(Runtime.java:768)
at java.base/java.lang.System.load(System.java:1837)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2648)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
at java.base/java.lang.System.loadLibrary(System.java:1873)
at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1399)
at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1397)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1396)
at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1429)
at java.desktop/java.awt.Desktop.isDesktopSupported(Desktop.java:328)
at io.qameta.allure.Commands.openBrowser(Commands.java:220)
at io.qameta.allure.Commands.open(Commands.java:152)
at io.qameta.allure.CommandLine.run(CommandLine.java:165)
at java.base/java.util.Optional.orElseGet(Optional.java:369)
at io.qameta.allure.CommandLine.main(CommandLine.java:88)
The reports are getting generated just fine. Only when I try to open them I get this error.
I have allure-reporter and allure-commandline installed via npm. I have my project inside a Debian WSL and run chromedriver with VcXsrv X Server in case this might help.
Does anybody have an idea how this error might get resolved or have a hint for what to look for? I hope I gave you enough information. If not, just say what you need. Thanks in advance for your help!
6
Answers
You likely have some missing downstream libraries.
Run this to find out which ones, then install them.
That means WSL doesn’t support
java.awt.Desktop.browse()
.This has been brought up before in Stackoverflow.
See https://stackoverflow.com/a/27881223/775715
on ubuntu 20.04:
As Joakim suggested in this comment here, the headless version was installed. I got the same error with ldd, the library missing.
It’s not a good idea to change your question in general, it’s better to search first and ask a new one if needed, with all specifics.
This may help you understand the possible cause of the second issue:
Desktop API is not supported on the current platform
I highly recommend to use a plain Ubuntu Linux installation if you want to use Linux, WSL is not the same and has specific issues that you will not encounter in Linux. If a dedicated install is not an option, try to look for generic issues. Expect differences in behavior with shells, docker and graphical related things, because those things are specifically implemented in certain ways for WSL.
/usr/lib/jvm/java-17-openjdk-17.0.4.1.1-1.fc36.x86_64/lib/libawt_xawt.so
This error requires an updat of the jdk.
this will install libawt_headless.so and it is working
Operating System deployed to is Fedora36
[For me it worked]
When you get this kinda error it means in installation of your jdk some of files are missed. To solve this problem act like bellow:
eg.
it means you already installed the jdk but there are some missing files with it. So you can fix it as easy as a pice of cake just by using ‘–fix-missing’
If you get this error on Manjaro Linux when running any Java program (in my case SnowFlake), then you need to install openjdk11-src, jre11-openjdk, jdk11-openjdk
the solution is simple i had the problem and i solved it by: