异常 java.lang.UnsatisfiedLink尝试 webdriver.io 项目中打开诱惑报告时出错

我有一个小型 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)

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

我通过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

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


答案 1

在 ubuntu 20.04 上:

sudo apt install openjdk-11-jdk

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

一般来说,改变你的问题不是一个好主意,最好先搜索一下,并在需要时提出一个新的问题,并附上所有细节。

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

当前平台不支持桌面 API

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


答案 2

您可能缺少一些下游库。

运行此命令以找出哪些,然后安装它们。

$ ldd /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
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)

这意味着 WSL 不支持 。java.awt.Desktop.browse()

这在Stackoverflow中已经提出过。

查看 https://stackoverflow.com/a/27881223/775715


推荐