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?
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.
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();
}
}
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?
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: Can’t 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)
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
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
Instalei o JDK de novo e funcionou!
O problema era o JDK mau instalado
Pensava que o Ubuntu bloqueasse janelas
Obrigado!