Сообщение об ошибке при выполнении WindRiver Workbench - хост: Ubuntu 14.04

Я пытаюсь запустить верстак WindRiver на моем хосте. Тем не менее, произошел сбой и файл журнала, как показано ниже.

Версия Java, установленная в настоящее время на моем компьютере:

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

Я подозреваю, что это связано с версией Java.

Пожалуйста, дайте мне знать, если вы знаете, как это исправить

ON 2015-08-25 18:56:33.830 -----------------------------------------------
eclipse.buildId=M20130131-0800/WB20141023-0742
java.version=1.6.0_21
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86

!ENTRY org.eclipse.osgi 4 0 2015-08-25 18:57:02.301
!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)
!SESSION 2015-08-25 18:57:09.758-----------------------------------------------

Я подозреваю, что это потому, что мой Workbench 32-битный, а мой хост 64-битный.

Любой отзыв, пожалуйста?

3 ответа

Решение

Я получил ту же ошибку с WorkBench. Я также использую 64-битную версию Ubuntu 14.x.

Похоже, что пакеты были удалены между Ubuntu 13.x и 14.x.

Я установил эти пакеты и теперь мой WorkBench загружает:

sudo apt-get install libgtk2.0-0:i386
sudo apt-get install libxtst-dev
sudo apt-get install libxtst-dev:i386
sudo apt-get install gtk2-engines-murrine:i386
sudo apt-get install lib32stdc++6
sudo apt-get install libxpm4:i386
sudo apt-get install libuuid1:i386 

Я получил ту же ошибку на Arch Linux 64 бит.

Проблема заключается в:

/<workbench_install_dir>/workbench-<your_version>/wrwb/wrworkbench/eclipse/plugins/com.windriver.core.runtime.jni_3.3.0.20110216-1702.jar

которой нужна версия для конкретной платформы (в данном случае linux) com.windriver.core.runtime.jni.linux_3.3.0.20110216-1702.jar (находится в том же каталоге).
Распаковка специфичного для Linux jar покажет библиотеку "libstdutil.so". Эту библиотеку необходимо проверить на наличие недостающих зависимостей и установить недостающие 32-битные библиотеки.

Пример:

mkdir /tmp/wbtmp && cd /tmp/wbtmp
jar -xf /home/testuser/workbench/workbench-3.3/wrwb/wrworkbench/eclipse/plugins/com.windriver.core.runtime.jni.linux_3.3.0.20110216-1702.jar
cd os/linux/x86/
ldd libstdutil.so

Вывод команды ldd необходимо проверить на наличие любых библиотек, помеченных как "не найденные", и тех библиотек, которые установлены. В моем случае мне не хватало libpangox-1.0.so.0.

Для тех, кто нажимает на это, потому что они используют старую систему WindRiver на CentOS 7, вам может потребоваться сделать это:

  • Согласно ответу @bogdan-paun, подтвердите, что вам не хватает libpangox-1.0.so.0
  • Загрузите исходный RPM для pangox-compat
  • Используйте CentOS mockинструмент (загрузите версию из centos-extra, а НЕ версию из EPEL) для создания 32-битной версии этой библиотеки (корень centos-7-i386)
  • В вашей системе CentOS 7 установите RPM i686, совместимый с pangox, который вы только что создали.
  • Теперь ваша система WindRiver WorkBench должна работать.
Другие вопросы по тегам