Как обрабатывать 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