Re:Gerar Arquivo.jar

25 respostas
P

Usa esse plugin do eclpse, é muito bom.
E so clicar com botão direito e dar build fat jar no projeto, ele ja gera todo empacotamento.

http://fjep.sourceforge.net/

25 Respostas

Pedrosa

Ao gerar seu jar que depende de outros, edite o arquivo manifest.mf

Manifest-Version: 1.0
Class-Path: lib/swing-layout-1.0.jar lib/Ecsjtapia.jar lib/jtapi.jar lib/jtds-1.1.jar
Main-Class: br.com.pedrosa.ClasseMain

Na propriedade Class-Path vc coloca os jars que sua aplicação depende seperado com um espaço, pronto gere novamente seu jar pelo export e veja se funciona.

P

Sim, esse plugin vai gerar o jar com todo os pacotes dependentes.

jgbt

isso so vai funcionar se vc tiver uma pasta lib com esse jar’s dentro dela.
vc tem essa pasta na estrutura do seu projeto?

[]'s

Pedrosa

Oi Simone, qual o erro gerado?, a sua aplicação contém esse diretorio lib mesmo e esses jars estão la e configurados no classpath da sua aplicação?

Pedrosa

Vc consegue setar esse classpath pelo Eclipse mesmo, clique com btn direito no projeto --> Properties -->Add External JARs e selecione os jars do seu diretorio lib, pronto esta feito o classpath, nem precisa dessa bat

Pedrosa

Simone, coloque esses parametros em um arquivo properties, assim fica mais dinamico, e na medida que essas informações mudem vc altera esse arquivo.

Segue um exemplo:

import java.io.FileInputStream;
import java.util.Properties;

import javax.swing.JOptionPane;

/**
* Objetivo: Manipular o arquivo .properties de configuração
* Data: 07/08/2006
*/
public class ManipulaProperties {

	public Properties carregarConfiguracoes() {
		Properties prop = new Properties();
		try {
			prop.load(new FileInputStream("/pasta/subpasta/xpto.properties"));
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null,"Erro ao ler arquivo de configuração:!","Erro",JOptionPane.ERROR_MESSAGE);
		}
		return prop;
	}

}

Chamando essa classe o obtendo os valores:

Properties arquivo = new ManipulaProperties().carregarConfiguracoes();
arquivo.getProperty("pathTxt")

Nesse getProperty vc informa a propriedade contida no arquivo properties:

pathTxt=/zzz/yyy/Cartao.txt

Mais informações aqui:

http://www.guj.com.br/java.tutorial.artigo.35.1.guj

Pedrosa

Um outro detalhe a pasta lib precisa estar no mesmo local que seu jar gerado, com os jars dentro, vc ta fazendo isso?

Pedrosa

Vamos la, vc gera seu jar que foi feito o classpath no eclipse, nesse classpath apontamos para a pasta lib, ou seja seu jar gerado precisa enchergar os outros que depende, por isso precisa ficar no mesmo local:

Ex:
suaAplicacao.jar //que foi gerado
lib/jtds.jar …

Entendeu?

davidbuzatto

Tenta usar o Netbeans… Cria as bibliotecas q vc quer, insere os jars e quando vc der o build ele cria tudo direitnho p/ vc…

E o melhor, num precisa ficar instalando plug-ins…

Pedrosa

Veja se entendi vc criou um jar contendo os outros jars dos seus drivers?, tente usar separadamente e coloque aqui como esta seu arquivo manifest.mf

Simone_Aparecida_M_B

Bom dia pessoal…

Estou com uma dúvida de como gerar um jar aonde preciso estar lendo outro jar.

Bom vou explicar melhor.

Tenho uma aplicação x, essa aplicação é bem simples, ela simplesmente gera pra mim webForms.
Nessa aplicação estou utilizando o banco de dados SQLServer 2000.

Só que para eu conseguir gerar esses WebForms preciso estar passando três argumentos, conexão, arquivo base (xml) e um diretório de saída (lugar aonde vai estar armazenado meus arquivos gerados).

Consegui gerar o jar perfeitamente, estou gerando o jar pelo export do eclipse, consigo executar o jar perfeitamente passando os argumentos necessários. Só que para isso preciso estar setando o classpath toda hora para poder carregar os drivers.

Preciso gerar um jar somente dos meus drivers para não precisar setar o classpath toda vez que for executar meu .jar

O que eu fiz foi o seguinte:

Gerei o jar dos drivers e coloquei o jar dentro do diretório lib
No arquivo Manifest coloquei a seguinte configuração:
Manifest-Version: 1.0
Main-Class: com.estratege.utils.WebFormGerador
Class-Path: C:\eclipse-workspace\WebFormGeradorApp\lib\driver.jar

Depois de feito isso gerei um jar da aplicação inteira…
Mais não estou conseguindo carregar os drivers, alguém sabe como me ajudar?

Obs: É minha primeira mensagem postada, não sei muito bem de como me expressar, aceito sugestões de como me expressar melhor e ter um melhor entendimento.

Agradeço desde já.

:slight_smile: Simone

Simone_Aparecida_M_B

Obrigada pela resposta…

Mais uma dúvida eu deixo tdo o que eu fiz e ao invés de gerar o jar eu faço isso que vc me falou?

Att
Simone :slight_smile:

Simone_Aparecida_M_B

Oi pedroza…

Então não funcionou não…

Olha só o que eu fiz…

Code:

Manifest-Version: 1.0
Class-Path: lib/msbase.jar lib/mssqlserver.jar lib/msutil.jar
Main-Class: com.estratege.utils.WebFormGerador

E gerei novamente o jar da aplicação inteira.

Simone

Simone_Aparecida_M_B

Ok …

Vou tentar fazer isso…

Obrigada pela ajuda :slight_smile:

Simone_Aparecida_M_B

Então pedroza…

Minha estrutura tem sim a pasta lib e dentro dela tenho tb os jars…
Só que eu tenho uma dúvida nesse tal de classpath…
Olha só o que eu fiz…
Dentro da pasta lib criei um bat setando o classpath…eu posso estar fazendo isso:

java -classpath C:\eclipse-workspace\WebFormGeradorApp\lib\msbase.jar;C:\eclipse-workspace\WebFormGeradorApp\lib\msutil.jar;C:\eclipse-workspace\WebFormGeradorApp\lib\mssqlserver.jar

Att
Simone

Simone_Aparecida_M_B

Ah legal Pedroza…

tinha me esquecido disso…rs

então add os jar no classpath da maneira que vc me disse, gerei o jar da aplicação novamente.

mais o que acontece é o seguinte:

Qdo executo o jar pelo dos…

diretório\java -jar gerador.jar
ele me pede o caminho que preciso informar:
<caminho da conexão>
para esse caminho eu criei um bat:
C:\eclipse-workspace\WebFormGeradorApp\conf\conexao.udl C:\eclipse-workspace\WebFormGeradorApp\source\ProjCentrBase.xml C:\eclipse-workspace\WebFormGeradorApp\GeradorArquivo\

e qdo eu executo esse bat ele me abre a udl de conexão e não roda me aplicativo.

Simone

Simone_Aparecida_M_B

Oi João…

Tenho essa estrutura sim…

Valeu pela ajuda :wink:

simone

Simone_Aparecida_M_B

Ok Pedroza até entendi o que vc falou…mais não tem necessidade de estar fazendo isso…

Os parâmetros podem ser lidos por um bat mesmo, o único problema é que não consigo carregar os drivers…na vdd acho que é isso que está acontecendo…

Vc está entendendo o que está rolando?

Até

Simone_Aparecida_M_B

Hum não entendi muito bem o que vc disse…

Olha soh tenho um diretório x que lá está o arquivo.jar, o bat dos parâmetros , somente isso.

Não estou gerando o jar dos drivers, mais se eu for gerar eu gero o jar e coloco na minha pasta x ou na pasta lib da minha estrutura e depois gero um jar total da aplicação?

simone

Simone_Aparecida_M_B

Ok…foi isso mesmo que eu fiz…

Dentro do meu lib tem 03 jars…
Gerei um jar (drivers.jar) desses jars no mesmo diretório
No classpath importei o jar (drivers.jar) que está dentro da pasta lib.

Gerei um jar da aplicação.

Simone

Simone_Aparecida_M_B

Ok…foi isso mesmo que eu fiz…

Dentro do meu lib tem 03 jars…
Gerei um jar (drivers.jar) desses jars no mesmo diretório
No classpath importei o jar (drivers.jar) que está dentro da pasta lib.

Gerei um jar da aplicação.

Simone

Simone_Aparecida_M_B

Valeu pela dica David…

Mais não posso instalar o Net Beans aqui :wink:

até

Simone_Aparecida_M_B

Bom dia Pedroza…

Vc acredita que não consegui ainda colocar isso para funcionar?

O problema é que qdo executo o jar e passo os meus parâmetros ele não dah nenhum erro, apenas mostra a udl de conexão…

Tem como eu ver pelo dos se está carregando os drivers?

Att
Simone

Simone_Aparecida_M_B

Como assim usar separadamente?

Bom o manifest eu testei dos dois modos:

Manifest-Version: 1.0
Class-Path: lib\driver.jar
Main-Class: com.estratege.utils.WebFormGerador

Manifest-Version: 1.0
Class-Path: lib\msbase.jar lib\mssqlserver.jar lib\msutil.jar
Main-Class: com.estratege.utils.WebFormGerador

Estrutura lib
driver.jar
msbase.jar
mssqlserver.jar
msutil.jar

Classpath
driver.jar - c:\eclipse-workspace\WebFormGeradorApp\lib

Depois que fiz tdo isso gerei um jar da aplicação inteira
Exemplo:
gerador.jar (somente os arquivos .java e o META-INF)

Dos
executei o comando para rodar o jar
Pediu os três argumentos de configuração
Passei os argumentos
E abre a UDL de conexão somente…

Até

Simone_Aparecida_M_B

Predrosa consegui um erro…rssssss

Não está conseguindo carregar os drivers.

Erro:

C:\Teste>java -jar gerador.jar C:\eclipse-workspace\WebFormGeradorApp\conf\conex

ao.udl C:\eclipse-workspace\WebFormGeradorApp\source\ProjCentrBase.xml C:\eclips

e-workspace\WebFormGeradorApp\GeradorArquivo

Arquivo Lido

Exception in thread main com.estratege.conexaoBD.PoolConexaoBDException: (XMLA

pp) nÒo foi possÝvel carregar  /cadastrar driver jdbc: com.microsoft.jdbc.sqlser

ver.SQLServerDriver

at com.estratege.conexaoBD.PoolConexaoBD$PoolConexaoBDAplic.(PoolC

onexaoBD.java:131)

at com.estratege.conexaoBD.PoolConexaoBD.criaPoolAplic(PoolConexaoBD.jav

a:343)

at com.estratege.utils.WebFormGerador.main(WebFormGerador.java:89)
Criado 7 de agosto de 2006
Ultima resposta 8 de ago. de 2006
Respostas 25
Participantes 5