Arquivos .JAR

Assunto: O que é um arquivo .Jar? Quais são suas funcionalidades, e como criar um.

Você pode ler este tutorial na íntegra em http://www.guj.com.br/java.tutorial.artigo.42.1.guj

Por favor, coloque as suas dúvidas e seus comentários sobre este tutorial aqui.
Sinta-se livre para fazer qualquer tipo de pergunta, desta maneira você estará nos ajudando e aos outros usuários!

Po, parabéns smota! Ficou legal pacas o tutorial! :smiley:

Obrigado :lol:

sobre o class-path

eu fiz o seguinte… inclui meu arquivo mysql-connector-java-3.1.0-alpha-bin.jar no meu jar, junto com as demais classes (não dividi em diretorios e subdiretorios) e no meu MANIFEST eu coloquei uma linha assim
CLASS-PATH: mysql-connector-java-3.1.0-alpha-bin.jar

tentei sem os dois pontos ( : ) tb, mas não encontrou o driver quando mandei iniciar a aplicação

Só pra garantir, é sem os dois pontos, veja

Para garantir ainda … o arquivo jar (mysql-connector-java-3.1.0-alpha-bin.jar ) NÃO é incluido dentro do jar … do modo do seu exemplo voce deve distribuir seu arquivo jar E o do mysql e deixa-los no mesmo diretorio.

certo?

[]s

coloquei somente no mesmo diretorio e deu certo… só que tirei os dois pontos e ele deu um erro… deve ser pq os meus outros atributos do MANIFEST tinham dois pontos…

valeu !

[quote=“Administrador”]Assunto: O que é um arquivo .Jar? Quais são suas funcionalidades, e como criar um.

Você pode ler este tutorial na íntegra http://www.guj.com.br/java.tutorial.artigo.42.1.guj

Por favor, coloque as suas dúvidas e seus comentários sobre este tutorial aqui.
Sinta-se livre para fazer qualquer tipo de pergunta, desta maneira você estará nos ajudando e aos outros usuários![/quote]

ola estou a tentar criar um ficheiro jar.
e tenho o seguinte erro java.lang.NoClassDefFoundError
as variaveis de ambiente estão configuradas desta forma:

JAVA_HOME=D:ProgramasNetBeans IDE 3.5.1
PATH=%PATH%;%JAVA_HOME%in
CLASSPATH=.;%CLASSPATH%;D:Documents and Settingsvictor.netbeans3.4sampledirexemplo.jar

O manifest está da seguinte forma:

Manifest-Version: 1.0
Created-By: NetBeans IDE
Main-Class: examples/colorpicker/ColorPicker
Specified-By: exemplo.jarContent

estou a utilizar o netbeans no xp
alguem me pode ajudar por favor
datsum@hotmail.com

datsum, certeza que o arquivo ColorPicker.class está dentro do JAR, e que ele está num diretório chamado examples/colorpicker?

Troque Main-Class: examples/colorpicker/ColorPicker
por Main-Class: examples.colorpicker.ColorPicker
Logicamente, certifique-se de que existe tal classe :wink:

[quote=“Daniel Quirino Oliveira”]Troque Main-Class: examples/colorpicker/ColorPicker
por Main-Class: examples.colorpicker.ColorPicker
Logicamente, certifique-se de que existe tal classe ;)[/quote]

gracias a todos.

sim esse era um dos problemas, já esta tudo funcionando bem.
alguem sabe qual o atributo da assinatura digital para o manifest

desde já agradeço

Meu Manifest está setado para o classpath apontar para o JAR do MySQL só que mesmo assim o aplicativo lança a exceção com.mysql.jdbc.Driver (class not found).
PS. o driver do mysql está no mesmo diretório do meu JAR :frowning:

SOLUCIONEI!!!

no Eclipse além de apontar para o Manisfest que você criou tem especificar que ele também vai fazer parte do JAR, pois ele não adiciona automaticamente como eu estava imaginando. 8)

Antes de mais nada, parabéns pelo tutorial ficou bem enxuto e objetivo,
como deveria ser todo tutorial.

Bom, estive procurando em algumas referências e ñ vi nada sobre como configurar argumentos como na “linha de comando”. Assim, gostaria de saber se consigo fazer isso pro “Main-Class” de um “.jar” chamar uma classe e enviar um parâmetro para esta classe.

Por exemplo, se vc inicializar minha aplicação pela linha de comando, com os arquivos em diretórios normais seria desta forma:
java arq.Boot -gui ini:br.com.Ligar

há a possibilidade de fazer isso pelo arquivo “Manifest”???
Manifest-Version: 1.0
Created-By: Charles
Main-Class: arq.Boot …?
…?

Qualquer ajuda será bem vida!!!
Obrigado a todos.

Hummm … até onde sei isso não é possível.
Se vc colocar o main class no manifest acredito que vc possa simplesmente passar os parametros sem o nome da classe (java -jar pacote.jar -gui ini:br.com.Ligar ) mas isso só testando mesmo.

De qq modo se vc quer um paremetro “default” pq nao deixa-lo no seu codigo mesmo ou em um arquivo .properties? ainda assim eh possivel permitir ao usuario sobrescrever seu padrao …

[]s

Não posso deixa num arquivo de propriedades pois este parâmentro é um objeto(Agente) que será inicializado por outro sistema.

Mas valeu pela idéia e resposta.

Vou testá-la e retorno o ocorrido.

Obrigado.
Charles

Olá pessoal

Li o texto sobre como gerar arquivos JAR, mas não entendi bem, como fazer isso. Vou postar aqui um código de um programa e se fosse possível gostaria de saber o que é preciso para gerar um arquivo JAR executável com essa programação que eu fiz. Eu uso o Eclipse.

//Começando o programa
import java.util.Scanner
public class Produto
{
public static void main (String args[])
{
Scanner entrada = new Scanner (System.in)
int a;
int b;
int c;

	System.out.print("entre com o primeiro inteiro: ");
	a = entrada.nextInt()

	System.out.print("entre com o segundo inteiro: ");
	b = entrada.nextInt()

	c=a*b; 
	System.out.print("O resultado é: %d\n", c);
}

} // terminado o programa

E agora como eu gero o arquivo .JAR?

Muito bom

Opa, tudo certo fabianoiasd ?

É o seguinte para você gerar um jar no eclipse é bem tranquilo, porém o artigo nos mostra como gerar o negócio na raça mesmo…

Primeiro conserte seu código, encontrei várias falhas como ausência de ponto e vírgula, print no lugar de printf… segue abaixo o código corrigido:

import java.util.Scanner;
public class Produto
{
public static void main (String args[])
{
Scanner entrada = new Scanner (System.in);
int a;
int b;
int c;

System.out.print("entre com o primeiro inteiro: ");
a = entrada.nextInt();

System.out.print("entre com o segundo inteiro: ");
b = entrada.nextInt();

c=a*b;
System.out.printf("O resultado é: %d\n", c);
}
}

Então vamos lá aos passos para você gerar o seu jar.

passo 1: salve seu arquivo java em uma pasta que pode ser home/fulano/meuPrimeiroJar
passo 2: abra o prompt de comando se for windows, e navegue até a pasta meuPrimeiroJar e execute o comando: javac Produto.java
você vai observar que dentro da pasta vai estar um outro arquivo chamado Produto.class.
passo 3: crie uma arquivo chamadao manifest.txt e coloque o seguinte texto dentro dele: Main-Class: Produto <> se não pode ter erros indesejáveis.
passo 4: digite o seguinte comando: jar -cvmf manifest.txt meuJarLindo.jar

Pronto! testa ae e qualquer coisa posta, e se tiver interesse passo para você um pdf, que consta uma explicação mais detalhada <ribclauport@hotmail.com>
segue abaixo a imagem com os comandos e o resulta em um print para voce visualizar.


Congratullations! Best practices best learnings

Estou iniciando ainda em programação java gostei muito do artigo mas me surgiram algumas dúvidas:

Quando eu termino de desenvolver minha aplicação, para que ela funcione em qualquer máquina com jvm instalado é preciso criar um jar executável com os classpath para o arquivo com o codigo main certo? Assim basta dar um duplo clique e o programa é executado normalmente.

A dúvida é sobre a extensão .jar porque usuário hoje em dia é tudo acostumado com .exe e por falta de conhecimento podem achar que .jar deve ser vírus ou qualquer coisa do tipo, além de não ter um instalador e o programa não ficar registrado no painel de controle na área de programas instalados.

Então queria saber se esse tipo de problema existe ou é tudo viajem da minha cabeça mesmo.

Obrigado!