Erro no Eclipse

9 respostas
gqferreira

Olá pessoal!

Uso Linux sem problemas (+/- né?!). Ao tentar instalar o Java numa máquina de meu amigo surgiu um problema estranho: Instalei o java, configurei as váriáveis, coloque o eclipse, ele reconhece tudo bonitinho sem da pau nenhum mas na hora de rodar surge isto:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/java/jdk1.6.0_12/jre/lib/i386/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1674) at java.lang.Runtime.load0(Runtime.java:770) at java.lang.System.load(System.java:1005) at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1695) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1030) at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50) at java.security.AccessController.doPrivileged(Native Method) at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38) at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29) at java.awt.Component.<clinit>(Component.java:560) Could not find the main class: Teste.Teste. Program will exit.

Oque pode ser? Já desinstalei e instalei novamente.

9 Respostas

gqferreira

Ops... Melhor vocês verem a classe né?!

package Teste;

import javax.swing.JFrame;
import javax.swing.JLabel;
import com.sun.awt.AWTUtilities;
public class Teste extends JFrame{

	/**
	 * @param args
	 */
	public JLabel lbTeste;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Teste t = new Teste();
		t.setVisible(true);

	}
	public Teste()
	{
		AWTUtilities.setWindowOpacity(this, 0.5f);
		setSize(500,500);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
		setLayout(null);
		setTitle("Frame transparente em Linux");
		setResizable(false);
		//--------
		lbTeste=new JLabel("Testando...");
		lbTeste.setBounds(100,100,100,25);
		getContentPane().add(lbTeste);	}

}
somma

Opa mano!!!

Teste aqui … mais fiz outro exemplo e funcionou…

O seu problema é erro de compilação.

segue meu exemplo:

package Teste;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Teste extends JFrame{
    
   // Cria uma janela, adiciona um componente e mostra a janela.
   private static void criaEMostraGUI() {
     
      JFrame frame = new JFrame("Exemplo 1");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JLabel label = new JLabel("Texto dentro da janela");
     
      frame.getContentPane().add(label);
      frame.pack();
    
      frame.setVisible(true);
   }    

   public static void main(String[] args) {
   
      // Cria um objeto Runnable que invoca criaEMostraGUI() quando executado
      // por um thread.
      Runnable coisa = new Runnable() { 
         // Implementação do método run(). Note que este código declara uma
         // classe sem nome, aninhada à classe ExemploGUI1. Para mais informações
         // sobre esta forma de declarar classes, consulte
         // http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html e
         // http://java.sun.com/docs/books/tutorial/java/javaOO/innerclasses.html
         public void run() {
            criaEMostraGUI();
         }
      }; 
      
      javax.swing.SwingUtilities.invokeLater(coisa);
   }
}
gqferreira

Não tinha erro de compilação. Já usei essa classe diversas vezes. Até o seu exemplo apresentou o mesmo problema. O problema está na instalação do Java.

gqferreira

Já pudi perceber que esse erro só acontece quando há um frame. Fiz um classe para se conectar ao MySql e não deu erro. Fiz várias para testar e percebi que as que contém frame (interface) dá esse mesmo erro.

M

Uma biblioteca nativa do Linux (o arquivo /opt/java/jdk1.6.0_12/jre/lib/i386/xawt/libmawt.so) não existe e o mesmo é necessário para aplicações em swing. Quanto a instalação, certifique-se que o arquivo não está corrompido e que essa biblioteca existe no arquivo comprimido. Se não der certo, tente baixar esse arquivo separadamente e colocar na pasta indicada.

gqferreira

Já conferi esse diretório e arquivo se encontra lá.

M

Será que é erro de permissão? Talvez o usuário atual não possa ler o arquivo. Verifique as permissões.

jhonathan1403

eae galera… estou começando a linguagem java agora…

eu fiz um programa no eclipse e estou con alguns problemas

import java.awt.<em>;

import javax.swing.</em>;

import javax.swing.*;

import java.util.Scanner;

public class PanelButton2 {

private JPanel painelAzul;

private JPanel painelVermelho;

private JPanel painelAmarelo;

private JFrame janelaDemo;

private JButton[]Botoes;

public PanelButton2(){

painelAzul = new JPanel();

painelVermelho = new JPanel ();

painelAmarelo = new JPanel();

janelaDemo = new JFrame ();

Botoes = new JButton [4];

Container c = janelaDemo.getContentPane();

c.setLayout(new FlowLayout());

janelaDemo.setSize(320,400);

painelAzul.setBackground(Color.blue);

painelAmarelo.setBackground(Color.yellow);

painelVermelho.setBackground(Color.red);

painelAzul.setPreferredSize(new Dimension(300,100));

painelVermelho.setPreferredSize(new Dimension(300,100));

painelAmarelo.setPreferredSize(new Dimension(300,100));

c.add(painelAzul);

c.add(painelVermelho);

c.add(painelAmarelo);

Icon icones[]={new ImageIcon(middle.gif),

new ImageIcon(box.sm.gif),new ImageIcon(flip.sm.gif)};

Botoes[1]=new JButton(Azul){
public static int main(){
	    		int a,b;
	    		
	    		a=14;
	    		           b=15;
	         if(a>b){
	        	 System.out.println("a e maior que b");
	         }else{
	        	 System.out.println("a e menor que b");
	         }
	         }
	    	}
	    	
	    
	   c.add(Botoes[1]);
		Botoes[2]=new JButton("Vermelho"){
       public static int main() {
				//Declarando variaveis
				int x,y;
				//Criando um Scanner
				Scanner input = new Scanner (System.in);
				System.out.println("Entre com o valor de 'a'");
				a= Input.nextInt();
				System.out.println("Entre com o valor de 'b'");
				b= Input.nextInt();
				
				if(a>b){
					System.out.println("O valor de 'a' e maior que o valor de 'b'");
				}else{
					System.out.println("O valor de 'a' e menor que o valor de 'b' ");
				}if(a==b){
					System.out.println("O valor de 'a' e de 'b' são iguais!");
				}
				}
			
			}
		
		c.add(Botoes[2]);
		Botoes[3]=new JButton("Amarelo"){
			public static void main(String[]args){
				
			
			System.out.println("Bye bye");
			
			return;
		}
		}
		c.add(Botoes[3]);		  
	   
	    janelaDemo.setVisible(true);

}

public static void main(String[]args){
						
		
		PanelButton2 p = new PanelButton2();
		PanelButton2 t= new PanelButton2();
		PanelButton2 s= new PanelButton2();
	}

}

Esse ae e meu Script

quem pude mi fala onde ta o erro eu agradeço …

vlw

e-mail: [email removido]

gqferreira

???

é o metodo main, uma variável ou um método normal???

O seu código está incompreensível, é mais fácil você dizer o que você quer fazer.
Como sei que você está começando agora, vou te dar uma dica: quando postar seu código coloque entre as tags “code” aperte o botão Code, cole o seu código e aperte ele novamente.
Fala aê o que vc quer fazer?!

Criado 17 de fevereiro de 2009
Ultima resposta 17 de fev. de 2009
Respostas 9
Participantes 4