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

标签 java eclipse webdriver windows-subsystem-for-linux allure

我有一个小的 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
当我点击该链接时,它无法访问。

最佳答案

在 Ubuntu 20.04 上:
sudo apt 安装 openjdk-11-jdk
正如 Joakim 建议的那样,安装了 headless 版本。
我在 ldd 上遇到了同样的错误,库丢失了。
一般来说,更改您的问题并不是一个好主意,最好先搜索并在需要时询问一个新问题,并提供所有细节。
这可能有助于您了解第二个问题的可能原因:
Desktop API is not supported on the current platform
如果您想使用 Linux,我强烈建议您使用普通的 Ubuntu Linux 安装,WSL 不一样,并且具有您在 Linux 中不会遇到的特定问题。如果无法选择专用安装,请尝试查找一般问题。预计 shell、docker 和图形相关事物的行为会有所不同,因为这些事物是以特定方式为 WSL 专门实现的。

关于java - 尝试在 webdriver.io 项目中打开 allure-reports 时出现异常 java.lang.UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67391845/

相关文章:

java - 蓝牙服务器传入缓冲区处理

java - 使用 `when` 作为验证

java - 当进度条达到 0 时打开新的 JFrame?

javascript - Selenium /Java : How to write element locator for an element with aria-selected=false

python - 尝试使用 send_keys 时出现 AttributeError

java - 如何在BorderLayout中实现JSplitPane?

java - Gradle,错误找不到或加载主类 'test.Main'

java - Eclipse 出现死代码警告,但是出了什么问题?

eclipse - 使用 Eclipse Tomcat Maven M2Eclipse 的 ClassNotFound W/Spring

java - Selenium - WebElement 对象是存储它们的数据还是检索它 "live"?