Duvidas sobre .jar

10 respostas
Wolf_X

ola, sei q é uma besteira mas me surgiu 2 duvidas ,
1ª - qdo eu compilo um programa em jar no netbeans ,é possivel a pessoa descompila-lo e analizar meu codigo fonte? e se possivel, como eu impeço isso?

2ª - porque os meus arquivos .jar nao abrem no jre comum , apenas no meu jdk ?

obrigado e desculpe a ignorancia :smiley:

10 Respostas

marcosmoura

Amigo, dá uma olhada nesse link:

http://www.guj.com.br/posts/list/6402.java

Quanto a seus jars não abrirem no JRE, não sei o motivo, pois o JRE tem o executável jar dentro da pasta /bin assim como o JDK.

Falou Valeus!

Wolf_X

ta dizendo q nao foi possivel axar a classe Main, pq sera?

R

O seu arquivo .jar não é nada mais do que uma espécie de .zip do seu aplicativo contendo seus arquivos .class. O fato de vc não estar conseguindo rodar seu aplicativo no jre comum pode ser q a sua versão do jre e do jdk sejam diferentes. Ao desenvolver no netbeans com jdk 1.4, vc não roda ele no JRE1.5 e nem no JRE1.3, nem em qualquer outro q não seja JRE1.4.
Outro fator que pode estar acontecendo é q vc não especificou qual a sua classe que irá inicializar o aplicativo. Esta classe deve conter uma função static main.

1112

Verifique se o Main-Class foi especificado no seu Manifest. Dê uma olhada em http://www.guj.com.br/java.tutorial.artigo.42.1.guj

Na verdade, uma aplicação desenvolvida em uma versão do JDK poderá ser executada em qualquer JRE de versão igual ou posterior.

Wolf_X

po , eu to usando o jdk 6 e o jre 5 :smiley:
entao eh isso :frowning:

R

Uma aplicação java desenvolvida apenas com as API’s Java, sem problemas roda em qualquer versão do JRE. Mas utilizar o Netbeans e suas bibliotecas para desenvolver aplicativos é onde está o problema. Por exemplo, usar o Netbeans com jdk 1.4 para criar um layout e tentar rodar este aplicativo no jre 1.5 por exemplo não funciona. Me lembro q até tem um jeito mas é bem complicado para fazer isso. Agora se vc desenvolver no Netbeans, mas sem usar a API do netbeans para criar o layout, usar apenas o swing puro Java posicionando componentes com GridBagConstraints GridBagLayout, etc ai não tem problema

Wolf_X

vo alterar entao , pra ficar melhor , brigadao gente :smiley:

R

Uma aplicação java desenvolvida apenas com as API’s Java, sem problemas roda em qualquer versão do JRE. Mas utilizar o Netbeans e suas bibliotecas para desenvolver aplicativos é onde está o problema. Por exemplo, usar o Netbeans com jdk 1.4 para criar um layout e tentar rodar este aplicativo no jre 1.5 por exemplo não funciona. Me lembro q até tem um jeito mas é bem complicado para fazer isso. Agora se vc desenvolver no Netbeans, mas sem usar a API do netbeans para criar o layout, usar apenas o swing puro Java posicionando componentes com GridBagConstraints GridBagLayout, etc ai não tem problema[/quote]

Wolf_X

galera, posso estar falando uma bobajem, mas me deem suas ideias, me veio a cabeça a possibilidade de usar uma linguagem nativa para compactar o arquivo jar, qdo o programa executa-se ele descompilaria o jar temporariamente em uma pasta oculta do systema e entao chama-lo atraves do prompt, e qdo fechado ele apagaria o programa de la, seria um metodo seguro para uma versao do software apenas para avaliação???

pq demorei uns 2 meses pra termina-lo e ficaria muito injuriado se um engraçadinho roubasse meu fonte :frowning:

se nao funciona , deem alguma ideia , plz :smiley:

1112

Uma aplicação java desenvolvida apenas com as API’s Java, sem problemas roda em qualquer versão do JRE. [/quote]

Nem sempre. Algo desenvolvido em JDK 5 e compilado com target 1.5 não rodará em JREs inferiores por incompatibilidade da versão da classe. Também existe a possibilidade de, mesmo compilando para um target anterior, você usar uma classe da API padrão que não existia na API de uma JRE anterior, por exemplo se você tentar usar a classe Scanner em JRE 1.4-.

Criado 13 de abril de 2007
Ultima resposta 15 de abr. de 2007
Respostas 10
Participantes 4