Como lidar com aplicativos SWT em 16.04

3

Parece que os aplicativos SWT (baseados no eclipse) no Xenial (16.04) são geralmente quebrados com o padrão-jdk (por exemplo, openjdk 8). Isso inclui o Eclipse IDE, Gantproject, etc ...

Eles não serão carregados ou não funcionarão como esperado (operações sem fim, ...). Isso está relacionado ao fato de que o SWT se integra mal com o GTK3 e, especialmente, com a versão mais recente que acompanha o Xenial (procure o GTK3 do SWT no Google por vários problemas e blogs relacionados ao assunto).

Na maioria das vezes, export SWT_GTK3=0 trabalha em torno do problema (ele volta para o GTK2).

Então, aqui está a minha pergunta: qual é a melhor maneira de lidar com esse problema para o Xenial?

  • defina SWT_GTK3=0 globalmente para o sistema (então, como é feito melhor, /etc/bash.bashrc , /etc/environment , ???)?
  • relata o problema para o Ubuntu resolvê-lo antes do lançamento? Então, quais são os pacotes relevantes? (default-jdk, swt-gtk, ???) Observe que já existe um relatório de bug sobre o assunto: link , que editei para torná-lo mais genérico e não eclipse IDE apenas
  • alguma outra opção?
por alci 29.03.2016 / 11:24

2 respostas

1

O problema já foi reportado para o Ubuntu no link que você forneceu, então nada mais precisa ser feito ainda.

Se SWT_GTK3=0 funcionar bem, você deve defini-lo da maneira mais onlobal possível. Existem algumas maneiras de fazer isso (escolha a última opção que funcionará para sua situação):

  • /etc/environment se aplica a tudo para todos os usuários, não apenas para programas Java
  • /etc/bash.bashrc aplica-se a coisas iniciadas de bash para todos os usuários, não apenas para Java.
  • ~/.bashrc aplica-se a coisas iniciadas de bash para o usuário atual, não apenas para Java.
  • O seguinte se aplicará a coisas iniciadas de bash para cada usuário usando o comando java . Pressione Ctrl + Alt + T e execute o seguinte:
    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
  • O seguinte se aplicará a coisas iniciadas de bash para o usuário atual usando o comando java . Pressione Ctrl + Alt + T e execute o seguinte:
    mkdir -p ~/bin
    echo '#!/bin/sh' > ~/bin/java
    echo 'SWT_GTK3=0 /usr/bin/java $*' >> ~/bin/java
    chmod a+x ~/bin/java
    exit
    
por Olathe 29.03.2016 / 12:12
0

Acabei de receber winbuilder designer para trabalhar esta manhã. Vou compartilhar.

Instale o oracle jdk8 e remova o jdk aberto. Para purgar, faça este comando.

sudo apt-get purge openjdk-\*

Para instalar o oracle jdk, use as instruções do ppa e do instalador. O método manual complexo e o método ppa são encontrados aqui. (E o google pode ajudar também se necessário) Substitua o openjdk pelo oracle-jdk no Ubuntu

    
por Bhikkhu Subhuti 29.03.2016 / 13:47

Tags