Как обрабатывать SWT-приложения в 16.04

Похоже, что приложения SWT (основанные на затмении) в Xenial (16.04) в основном не работают с default-jdk (то есть openjdk 8). Это включает в себя Eclipse IDE, Gantproject и т.д...

Они либо не будут загружаться, либо не будут работать так, как ожидалось (никогда не заканчивая операции, ...). Это связано с тем, что SWT плохо интегрируется с GTK3, и особенно с последней версией, поставляемой с Xenial (ищите SWT GTK3 в Google, чтобы найти множество проблем и блогов, связанных с этой проблемой).

Большую часть времени, export SWT_GTK3=0 работает вокруг проблемы (это возвращается к GTK2).

Итак, вот мой вопрос: как лучше всего решить эту проблему для Xenial?

  • задавать SWT_GTK3=0 глобально для системы (то, как это лучше всего сделать, /etc/bash.bashrc, /etc/environment???
  • сообщить о проблеме в Ubuntu, чтобы решить ее до выпуска? Тогда, каковы соответствующие пакеты? (default-jdk, swt-gtk,???). Обратите внимание, что по этому вопросу уже существует отчет об ошибке: https://bugs.launchpad.net/ubuntu/+source/swt-gtk/+bug/1552764, который я редактировал. чтобы сделать его более общим и не затмевать только IDE
  • любой другой вариант?

2 ответа

Решение

Об этой проблеме уже сообщалось в Ubuntu по указанной вами ссылке, поэтому больше ничего не нужно делать.

Если SWT_GTK3=0 работает хорошо, вы должны установить его настолько невообразимо, насколько это возможно. Есть несколько способов сделать это (выберите последний, который будет работать в вашей ситуации):

  • /etc/environment относится ко всему для каждого пользователя, а не только к программам на Java
  • /etc/bash.bashrc относится к вещам, начатым с bash для каждого пользователя, а не только Java.
  • ~/.bashrc относится к вещам, начатым с bash для текущего пользователя, а не только Java.
  • Следующее относится к вещам, начатым с bash для каждого пользователя, использующего java команда. Нажмите Ctrl+Alt+T и выполните следующее:
    sudo -i
    mkdir -p /usr/local/bin
    echo '#!/bin/sh' > /usr/local/bin/java
    echo 'SWT_GTK3=0 /usr/bin/java $*' >> /usr/local/bin/java
    chmod a+x /usr/local/bin/java
    exit
    exit
  • Следующее относится к вещам, начатым с bash для текущего пользователя, использующего java команда. Нажмите Ctrl+Alt+T и выполните следующее:
    mkdir -p ~/bin
    echo '#!/bin/sh' > ~/bin/java
    echo 'SWT_GTK3=0 /usr/bin/java $*' >> ~/bin/java
    chmod a+x ~/bin/java
    exit

Я только что получил winbuilder designer на работу этим утром. Я буду делиться.

Установите oracle jdk8 и удалите открытый jdk. Для очистки сделайте эту команду.

sudo apt-get purge openjdk-\*

Для установки oracle jdk используйте инструкции ppa и установщика. Сложный ручной метод и метод ppa находятся здесь. (И гугл тоже может помочь при необходимости) Заменить openjdk на oracle-jdk в Ubuntu

Другие вопросы по тегам