尝试在 webdriver.io 项目中打开 allure-reports 时出现异常 java.lang.UnsatisfiedLinkError

Tho*_*dor 10 java eclipse webdriver allure windows-subsystem-for-linux

我有一个小的 webdriver.io 项目,只是为了第一次试验它。我现在想添加诱惑报告,但是当我尝试运行时allure open出现以下异常,我不知道我必须在哪里解决这个问题:

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)
Run Code Online (Sandbox Code Playgroud)

报告生成得很好。只有当我尝试打开它们时,才会出现此错误。

我通过 npm 安装了 allure-reporter 和 allure-commandline。我在 Debian WSL 中有我的项目,并使用 VcXsrv X Server 运行 chromedriver,以防万一这可能会有所帮助。

有没有人知道如何解决这个错误,或者有关于寻找什么的提示?我希望我给了你足够的信息。如果没有,就说你需要什么。在此先感谢您的帮助!

编辑:我再次安装了 openjdk-11-jdk 并解决了原始错误。但现在我收到以下消息:

2021-05-04 23:33:34.871:INFO::main: Logging initialized @395ms to org.eclipse.jetty.util.log.StdErrLog
Browse operation is not supported on your platform.You can use the link below to open the report manually.
java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
        at java.desktop/java.awt.Desktop.checkActionSupport(Desktop.java:380)
        at java.desktop/java.awt.Desktop.browse(Desktop.java:524)
        at io.qameta.allure.Commands.openBrowser(Commands.java:222)
        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)
Server started at <http://127.0.1.1:46223/>. Press <Ctrl+C> to exit
Run Code Online (Sandbox Code Playgroud)

当我点击该链接时,它无法访问。

Vin*_*ris 17

在 Ubuntu 20.04 上:

sudo apt install openjdk-11-jdk
Run Code Online (Sandbox Code Playgroud)

正如 Joakim在此评论中建议的那样,安装了无头版本。我在 ldd 上遇到了同样的错误,库丢失了。

一般来说,更改您的问题并不是一个好主意,最好先搜索并在需要时询问一个新问题,并提供所有细节。

这可能有助于您了解第二个问题的可能原因:

当前平台不支持桌面 API

如果您想使用 Linux,我强烈建议您使用普通的 Ubuntu Linux 安装,WSL 不一样,并且具有您在 Linux 中不会遇到的特定问题。如果无法选择专用安装,请尝试查找一般问题。预计 shell、docker 和图形相关事物的行为会有所不同,因为这些事物是以特定方式为 WSL 专门实现的。


小智 8

[对我来说它有效]

当你遇到这种错误时,这意味着在安装 jdk 时丢失了一些文件。要解决这个问题,请执行以下操作:

sudo apt install openjdk-[version]-jdk --fix-missing
Run Code Online (Sandbox Code Playgroud)

例如。

sudo apt install openjdk-16-jdk --fix-missing
Run Code Online (Sandbox Code Playgroud)

这意味着你已经安装了jdk,但是缺少一些文件。因此,您只需使用“--fix-missing”即可轻松修复它