尝试在 webdriver.io 项目中打开 allure-reports 时出现异常 java.lang.UnsatisfiedLinkError
Exception java.lang.UnsatisfiedLinkError when trying to open allure-reports in webdriver.io project
我有一个小的 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.run(Toolkit.java:1399)
at java.desktop/java.awt.Toolkit.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 中,运行 chromedriver 与 VcXsrv X Server 以防这可能有帮助。
是否有人知道如何解决此错误或提示要查找的内容?我希望我给了你足够的信息。如果没有,就说你需要什么。预先感谢您的帮助!
编辑:
我再次安装了 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
当我按照那个 link 无法访问时。
您可能缺少一些下游库。
运行这个找出有哪些,然后安装它们。
$ 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()
。
这已经在 Whosebug 中提出过。
见
在 ubuntu 20.04:
sudo apt install openjdk-11-jdk
按照 Joakim 的建议 ,安装了无头版本。我在 ldd 上遇到了同样的错误,缺少库。
笼统地改变你的问题不是一个好主意,最好先搜索一下,如果需要再问一个新的问题,并说明所有细节。
这可能有助于您了解第二个问题的可能原因:
Desktop API is not supported on the current platform
如果你想使用 Linux,我强烈建议使用普通 Ubuntu Linux 安装,WSL 不一样,并且有你在 Linux。如果专用安装不是一个选项,请尝试查找一般问题。预计 shell、docker 和图形相关事物的行为会有所不同,因为这些事物是专门为 WSL 以某些方式实现的。
我有一个小的 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.run(Toolkit.java:1399)
at java.desktop/java.awt.Toolkit.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 中,运行 chromedriver 与 VcXsrv X Server 以防这可能有帮助。
是否有人知道如何解决此错误或提示要查找的内容?我希望我给了你足够的信息。如果没有,就说你需要什么。预先感谢您的帮助!
编辑: 我再次安装了 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
当我按照那个 link 无法访问时。
您可能缺少一些下游库。
运行这个找出有哪些,然后安装它们。
$ 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()
。
这已经在 Whosebug 中提出过。
见
在 ubuntu 20.04:
sudo apt install openjdk-11-jdk
按照 Joakim 的建议
笼统地改变你的问题不是一个好主意,最好先搜索一下,如果需要再问一个新的问题,并说明所有细节。
这可能有助于您了解第二个问题的可能原因:
Desktop API is not supported on the current platform
如果你想使用 Linux,我强烈建议使用普通 Ubuntu Linux 安装,WSL 不一样,并且有你在 Linux。如果专用安装不是一个选项,请尝试查找一般问题。预计 shell、docker 和图形相关事物的行为会有所不同,因为这些事物是专门为 WSL 以某些方式实现的。