[RESOLVIDO] Problemas em rodar .jar

6 respostas
C

E aí galera. É o seguinte, acabei de fazer uma espécie de banco em swing. Mas na hora de rodar o jar executável eu to tendo alguns problemas…
Ao dar um java -jar Banco_IFSC.jar aparece isso:

Exception in thread main java.lang.UnsupportedClassVersionError: br/com/bancoifsc/gui/PainelInicial : Unsupported major.minor version 51.0

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:634)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)

at java.net.URLClassLoader.access$000(URLClassLoader.java:73)

at java.net.URLClassLoader$1.run(URLClassLoader.java:212)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:205)

at java.lang.ClassLoader.loadClass(ClassLoader.java:321)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)

at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)

Could not find the main class: br.com.bancoifsc.gui.PainelInicial. Program will exit.

ja tentei fazer de tudo e ainda nao consegui arrumar… se alguém puder me ajudar eu agradeço

6 Respostas

Roger75

Parece ser algo relacionado à versão do Java que você está utilizando na hora de executar… é a mesma versão que você usou quando programou?

thiagof

Bom dia chittolina!

não sou muito expert em jars, mas observando a sua pilha de exceção, notei que na ultima linha tem a seguinte informação:

“Could not find the main class: br.com.bancoifsc.gui.PainelInicial. Program will exit.”

Pelo que me parece, o Manifest do seu jar não define a “Main-Class” ou está apontando para um pacote diferente.

Tente abrir o seu arquivo Manifest e busque pela linha:

Main-Class: br.com.bancoifsc.gui.PainelInicial

se não houver uma linha começando com Main-Class, então a inclua no manifest e gere um novo jar, mas caso ela exista, verifique se sua classe PainelInicial está contida no pacote br.com.bancocoifsc.gui

provavelmente você mudou o pacote da classe e esqueceu de atualizar o manifest

Dá uma olhada no artigo do Samuel Mota
http://www.guj.com.br/articles/42

lá tem um trecho muito bom, que explica melhor o que estou querendo dizer, procure por esse trecho:

JAR executável
Para poder tornar o arquivo JAR como um executável devemos adicionar o atributo Main-Class ao manifesto. O valor desse atributo deve ser o nome completo da classe, incluindo a package a que ele pertence, que contenha o método public static void main(String[] args) isto é, que seja o ponto de entrada da nossa aplicação. No exemplo deste artigo, supondo que classeA seja o ponto de entrada para minha aplicação o manifesto deverá conter:

Main-Class: br.com.guj.artigoJAR.classeA

Como os sistemas operacionais associam o .jar ao java, um duplo clique em um JAR que contém essa propriedade irá ter o mesmo efeito de chamar a tal classe tendo este jar como classpath. Isso dá a impressão de que esse jar é “executável”.

Mas dê preferencia por ler o artigo inteiro, está muito didático!!!

C

o problema tava na versão, como o Roger falou. Não tinha nem passado isso pela minha cabeça, valeu aí! Obrigado pela atenção de vcs

C

Só mais uma coisa, como eu faço pra saber a versão do meu compilador no netbeans?

thiagof

Clique com o botão direito em cima da pasta raiz do seu projeto e vá em “propriedades”, na categoria “Códigos-fonte” procure por uma campo chamado: “Formato código-fonte/binário” ai é só escolher a opção de JDK que desejar :smiley: e por padrão, ela já vem selecionada a opção que vc está usando para aquele projeto.
Ou se preferir, vá ao menu Ferramentas > Plataformas Java e lá vc vai saber qual a plataforma java que o netbeans usa por Padrão e vai poder adicionar mais plataformas também e definir uma outra como padrão para novos projetos!

obs.: meu netbeans é o 7.1.1, se o seu for de uma versão muito anterior, algo pode estar ligeiramente diferente, mas é nessa mesma linha de raciocínio de procurar nas propriedades do projeto ou no menu Ferramentas.

C

thiagof:
Clique com o botão direito em cima da pasta raiz do seu projeto e vá em “propriedades”, na categoria “Códigos-fonte” procure por uma campo chamado: “Formato código-fonte/binário” ai é só escolher a opção de JDK que desejar :smiley: e por padrão, ela já vem selecionada a opção que vc está usando para aquele projeto.
Ou se preferir, vá ao menu Ferramentas > Plataformas Java e lá vc vai saber qual a plataforma java que o netbeans usa por Padrão e vai poder adicionar mais plataformas também e definir uma outra como padrão para novos projetos!

obs.: meu netbeans é o 7.1.1, se o seu for de uma versão muito anterior, algo pode estar ligeiramente diferente, mas é nessa mesma linha de raciocínio de procurar nas propriedades do projeto ou no menu Ferramentas.

Valeu pela ajuda!

Criado 15 de abril de 2012
Ultima resposta 16 de abr. de 2012
Respostas 6
Participantes 3