You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下Windriver Workbench报java.lang.UnsatisfiedLinkError错误求助

问题:Windriver Workbench选择工作区后报java.lang.UnsatisfiedLinkError错误

背景

通过scp从另一台服务器复制Windriver目录到本地Linux服务器,该操作在其他服务器可正常运行。启动Windriver Workbench后GUI能显示,但选择工作区目录后报错,提示查看日志。

系统信息

Linux Itzhak-r-ubuntu 5.15.0-92-generic #102~20.04.1-Ubuntu SMP Mon Jan 15 13:09:14 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

日志报错内容

!SESSION 2024-02-01 14:29:33.257 -----------------------------------------------
eclipse.buildId=M20130131-0800/WB20140715-0750
java.version=1.6.0_21
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_IL
Command-line arguments:  -os linux -ws gtk -arch x86

!ENTRY org.eclipse.osgi 4 0 2024-02-01 14:29:40.170
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: com.windriver.core.runtime.jni.Env.setEnv(Ljava/lang/String;Ljava/lang/String;)I
        at com.windriver.core.runtime.jni.Env.setEnv(Native Method)
        at com.windriver.ide.common.core.installregistry.WREnv.setSystemEnv(WREnv.java:805)
        at com.windriver.ide.common.core.installregistry.WRInstallRegistry.initWorkbenchEnvironment(WRInstallRegistry.java:631)
        at com.windriver.ide.common.core.installregistry.WRInstallRegistry.init(WRInstallRegistry.java:484)
        at com.windriver.ide.common.core.installregistry.WRInstallRegistry.getInstance(WRInstallRegistry.java:550)
        at com.windriver.ide.application.UnifiedSWTSwingApplication.checkPreconditions(UnifiedSWTSwingApplication.java:148)
        at com.windriver.ide.application.CopyOfIDEApplication.start(CopyOfIDEApplication.java:136)
        at com.windriver.ide.application.UnifiedSWTSwingApplication.access$2(UnifiedSWTSwingApplication.java:1)
        at com.windriver.ide.application.UnifiedSWTSwingApplication.start(UnifiedSWTSwingApplication.java:70)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
        at org.eclipse.equinox.launcher.WRWBMain.main(WRWBMain.java:37)

本地Java版本

openjdk version "1.8.0_392"
OpenJDK Runtime Environment (build 1.8.0_392-8u392-ga-1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.392-b08, mixed mode)

之前的问题及处理

曾遇到共享对象缺失问题,报错如下:

no swt-pi-gtk in java.library.path /root/.swt/lib/linux/x86/libswt-pi-gtk-3836.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory Can't load library: /root/.swt/lib/linux/x86/libswt-pi-gtk.so

安装相关库后GUI可正常启动。

已尝试操作

安装Windriver官网提及的依赖库:

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping libsdl1.2-dev xterm

解决方案

针对java.lang.UnsatisfiedLinkError错误,可按以下步骤排查修复:

1. 匹配Java版本

从日志可见,Windriver Workbench实际调用的是Java 1.6.0_21,但本地系统默认是OpenJDK 1.8.0_392。老版本Windriver对Java版本兼容性要求严格,需强制Workbench使用对应版本:

  • 下载Oracle JDK 1.6.0_21并解压到本地目录(如/opt/jdk1.6.0_21)
  • 修改Windriver启动脚本(如wrwb),在开头添加环境变量配置:
    export JAVA_HOME=/opt/jdk1.6.0_21
    export PATH=$JAVA_HOME/bin:$PATH
    

2. 补全32位系统依赖

日志中BootLoader显示ARCH=x86,说明Workbench是32位程序,需安装32位基础库:

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libxtst6:i386

3. 修复目录权限

复制的Windriver目录可能存在权限缺失,执行以下命令修复:

sudo chmod -R 755 /path/to/windriver
sudo chown -R $USER:$USER /path/to/windriver

4. 重置工作区配置

若上述步骤无效,可尝试重置工作区:

  • 删除原工作区目录下的.metadata文件夹
  • 重新启动Workbench并选择该工作区

内容的提问来源于stack exchange,提问作者Itzik Rahamim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:10:00