Arquivos .JAR

18 respostas
A

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!

18 Respostas

cv1

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

smota

Obrigado :lol:

guscoppi

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

smota

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

guscoppi

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 !

D

“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!

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
[email removido]

cv1

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

Daniel_Quirino_Olive

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

D

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

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

E

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)

C

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.

smota

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

C

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

F

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?

viudes

Muito bom

ribclauport

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 <[email removido]>
segue abaixo a imagem com os comandos e o resulta em um print para voce visualizar.


hermanolucio

Congratullations! Best practices best learnings

H

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!

Criado 23 de julho de 2003
Ultima resposta 2 de mar. de 2013
Respostas 18
Participantes 13