【问题标题】:Exception java.lang.UnsatisfiedLinkError when trying to open allure-reports in webdriver.io project尝试在 webdriver.io 项目中打开 allure-reports 时出现异常 java.lang.UnsatisfiedLinkError
【发布时间】:2021-07-27 05:13:37
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    在 ubuntu 20.04 上:

    sudo apt install openjdk-11-jdk
    

    正如 Joakim 建议的 in this comment here,安装了无头版本。我在 ldd 上遇到了同样的错误,缺少库。

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

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

    Desktop API is not supported on the current platform

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

    【讨论】:

    • 我已经搜索了那个一般问题,但没有找到任何东西,谢谢你的链接!你是对的,下次我会发布一个新问题,那太愚蠢了。
    • 这也适用于我在 Ubuntu 18.04 上修复我的 Eclipse IDE 启动错误,上面写着:Failed to create improved startup dialog, falling back to Eclipse standard dialog. Please check Eclipse configuration logs for details.
    • 我已经安装了 open jdk 11。但是有些东西不见了。我做了以下 sudo apt install apt-file, sudo apt-file update,然后再 sudo apt install openjdk-11-jdk 工作。在这里找到ubuntu-mate.community/t/java-programs-stopped-working/24091/5
    【解决方案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

    【讨论】:

    • 当我运行这个时,我得到:ldd: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so: No such file or directory
    • 你缺少那个库,也许你安装了你的 openjdk 包的无头版本?
    • 我不记得我是如何安装 openjdk 但再次安装 openjdk-11-jdk 解决了该错误。但现在我得到了一个不同的错误。我会在我的问题底部添加它。
    • 好的,谢谢,所以没有办法让它运行?
    • 对于 BROWSE 操作问题,请参阅:stackoverflow.com/questions/18004150/…。安装提到的 Gnome 库可能会起作用:sudo apt-get install libgnome2-0。如果应用程序运行,还要检查预期的 URL 和端口,它基本上会尝试为你打开浏览器,但由于缺少类的实现而失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2023-04-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    相关资源
    最近更新 更多