Criei um Programa Java e ele não quer abrir no Linux Ubuntu

6 respostas
J

Olá!
Criei um programa Java e ele não quer abrir no Linux Ubuntu.
No Windows abre de boa.
Mas quando uso o Linux, não quer abrir.
Uma pergunta? O que eu faço?

6 Respostas

pmlm

Se ele não quer, tens de pedir com mais jeitinho. Levá-lo a jantar fora e tentar convencê-lo.

Agora a sério, “não quer abrir”, “não funciona”, “dá erro” são coisas demasiado vagas para que alguma vez alguém consiga ajudar outra pessoa nesta área. Explica exatamente o que estás a fazer e que mensagem de erro ocorre. Só assim poderás ser ajudado.

J

O código é esse!
Funciona de boa no Windows, mas quando roda no Linux não funciona

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Window {

    public JFrame janela;
    public JButton botao;

    public void Window() {
        janela = new JFrame();
        janela.setTitle("Hello World Example");
        janela.setSize(200, 200);
        janela.setLocation(500, 260);

        Image Icone = Toolkit.getDefaultToolkit().getImage("icone.png");
        janela.setIconImage(Icone);

        // janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        janela.setLayout(null);

        botao = new JButton();
        botao.setText("Hi!");
        botao.setBounds(25, 10, 150, 25); // objeto.setBounds(esquerda, topo, largura, altura)
        janela.add(botao);

        botao.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "Hello World!");
        }});

        janela.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
        }});

        janela.setVisible(true);
    }

    public static void main(String[] args) {
        Window jx = new Window();
        jx.Window();
    }

}
hugokotsubo

Reforçando o que já foi dito acima: “não funciona” é muito vago. Existem milhares de maneiras de algo não funcionar, então precisamos de mais detalhes, como por exemplo:

  • Como vc está tentando executar? É via linha de comando (e quais comandos)? Está usando algum editor/IDE (e qual)?
  • O que exatamente acontece? Aparece alguma mensagem de erro (e qual é)? Algum outro comportamento (qual)?
  • etc etc etc

Quanto mais detalhes, maior a chance de conseguirmos reproduzir o erro e encontrar a solução.

Quanto menos detalhes, maior a chance de ficarmos só no chute, e talvez com muita sorte alguém consiga adivinhar. Mas pra que depender da sorte se vc pode simplesmente detalhar melhor? :slight_smile:

J

Estou copilando o código pelo terminal, no Windows funciona, mas não no Linux.

$ javac Window.java

$ java Window

Exception in thread main java.lang.UnsatisfiedLinkError: Cant load library: /usr/lib/jvm/java-17-openjdk-amd64/lib/libawt_xawt.so

at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2398)

at java.base/java.lang.Runtime.load0(Runtime.java:755)

at java.base/java.lang.System.load(System.java:1970)

at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)

at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)

at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)

at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)

at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:315)

at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:285)

at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2403)

at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)

at java.base/java.lang.System.loadLibrary(System.java:2006)

at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1384)

at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1382)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)

at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1381)

at java.desktop/java.awt.Toolkit.initStatic(Toolkit.java:1419)

at java.desktop/java.awt.Toolkit.(Toolkit.java:1393)

at java.desktop/java.awt.Component.(Component.java:624)

at Window.Window(Window.java:11)

at Window.main(Window.java:43)
hugokotsubo

Uma outra dica que vai te ajudar muito: a esmagadora maioria dos erros mais comuns (e até os incomuns) já foram amplamente discutidos na Internet. Então se vc pesquisar pela mensagem de erro, é grande a chance de encontrar algo.

No caso, peguei a mensagem “Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-17-openjdk-amd64/lib/libawt_xawt.so” e procurei no Google.

Nos resultados aparecem links com possíveis explicações e várias alternativas de solução - e não faz sentido eu repetir tudo de novo aqui, clica nos links e boa leitura :slight_smile:

E aí não tem jeito, tem que ler, entender qual se aplica ao seu caso e ir tentando as soluções até resolver (de preferência, tentando entender o que cada uma faz, em vez de seguir cegamente e correr o risco de acabar piorando a situação).

Desculpe se não tem uma solução rápida e mágica de mão beijada, mas é bom pra ir se habituando, pois na nossa área a maioria dos problemas são resolvidos assim :slight_smile:

J

Instalei o JDK de novo e funcionou!
O problema era o JDK mau instalado
Pensava que o Ubuntu bloqueasse janelas
Obrigado!

Criado 25 de agosto de 2025
Ultima resposta 26 de ago. de 2025
Respostas 6
Participantes 3