Erro no Eclipse, mas não no NetBeans

5 respostas
javahunter
Ola pessoal, esse código funciona no netbeans mas não no eclipse.
import javax.sound.midi.*;

public class MusicTest1_01 {

	public void play() {
        try {
            Sequencer sequencer = MidiSystem.getSequencer();
            System.out.println("Successfully got a sequencer");
            throw new MidiUnavailableException();
        } catch(MidiUnavailableException ex) {
            System.out.println("Bummer");
        }
    }
    
    public static void main(String[] args) {
        MusicTest1 mt = new MusicTest1();
        mt.play();
    }
}
Mensagem do eclipse:

Exception in thread "main" java.lang.IllegalAccessError: class com.sun.media.sound.AbstractPlayer cannot access its superclass com.sun.media.sound.AbstractMidiDevice
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.sun.media.sound.MixerSequencerProvider.getDeviceInfo(MixerSequencerProvider.java:28
at javax.sound.midi.MidiSystem.getFirstDevice(Unknown Source)
at javax.sound.midi.MidiSystem.getFirstDevice(Unknown Source)
at javax.sound.midi.MidiSystem.getFirstDevice(Unknown Source)
at javax.sound.midi.MidiSystem.getDefaultDevice(Unknown Source)
at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(Unknown Source)
at javax.sound.midi.MidiSystem.getSequencer(Unknown Source)
at javax.sound.midi.MidiSystem.getSequencer(Unknown Source)
at cap11.MusicTest1.play(MusicTest1.java:7)
at cap11.MusicTest1_01.main(MusicTest1_01.java:18

Alguma ideia? do que pode ser isso.

5 Respostas

Ataxexe

Você está rodando os códigos na mesma JVM? Porque eles não me parecem depender de nada do IDE.

Vynko

Você usou o package NomeDoArquivo; ?
No eclipse deve usar isso no começo, para afirmar que aquele arquivo faz parte de lá, pelo menos é isso que eu acho…

por exemplo:

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}

Dá erro, mas esse aqui não /

package HelloWorld;

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}
javahunter

no pc que tem o eclipse é 1.7.0_5
e no netbeans é 1.7.e alguma coisa. Tenho que olhar quando chegar em casa.

-Tipo, esse código é pra funciona em qualquer JVM.1.7.pra CIMA ou não é pra rodar?

rodei sem o eclipse e dispara a mesma mensagem de erro.

vlw pela atenção Ataxexe.

javahunter
Vynko:
Você usou o package NomeDoArquivo; ? No eclipse deve usar isso no começo, para afirmar que aquele arquivo faz parte de lá, pelo menos é isso que eu acho... por exemplo:
public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}
Dá erro, mas esse aqui não \/
package HelloWorld;

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}
Acho que no teu eclipse não esta dando erro porque o teu pacote tem o mesmo nome da classe, mas no meu caso ele é diferente. E se eu colocar o nome da classe o eclipse vai reclamar.
Vynko

É totalmente possível que o package tenha nome diferente da classe, isso é definido na criação da class, se você editou o default package, deve ter ocorrido esse erro, ou se você nem ao menos saiba qual é o package, recrie o projeto e vá copiando e colando os arquivos nas novas classes

Criado 18 de julho de 2013
Ultima resposta 18 de jul. de 2013
Respostas 5
Participantes 3