Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodolfo TI

Ao tentar executar o JAR em outra máquina não funciona

Recommended Posts

E aí galera tudo bem /

 

Tenho um sistema em java que funciona perfeitamente em minha máquina porém ao copiar para os servidor e tentar executar ele apresenta o seguinte erro.

 

"Could not find the main class: enviaemail.MontaEmail. Program will exit."
Copio a pasta do projeto toda para o servidor.
Já olhei algums topicos alguns falam sobre o manifest.mf, outros sobre a versão do jdk , inclusive em outros fóruns, google, enfim.
Hoje meu manifest.mf está assim
Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.EnviaEmail
Não sei o que fazer ou o que testar, será que alguem pode me ajudar ? Já tiveram Problema Parecido ??
Uso Netbeans 7.3, jdk 7 -
Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodolfo, não sei se você reparou mas a mensagem de erro aponta para a falta da classe principal enviaemail.MontaEmail . No seu arquivo manifest você definou como main-class a classe enviaemail.EnviaEmail .

 

Acho que esse é o primeiro passo pra descobrir o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodolfo, não sei se você reparou mas a mensagem de erro aponta para a falta da classe principal enviaemail.MontaEmail . No seu arquivo manifest você definou como main-class a classe enviaemail.EnviaEmail .

 

Acho que esse é o primeiro passo pra descobrir o erro.

 

Opa Vergil, primeiramente muito obrigado pela resposta, então seguindo esse conceito abaixo segue a estrutura do meu projeto:

 

projetoe.jpg

 

Acredito que não tenha nada erro com o endereço do pacote, será que pode ser algo nas propiedades ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta deixar o seu Manifest assim:

Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.MontaEmail

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

E aí galera tudo bem /

 

Tenho um sistema em java que funciona perfeitamente em minha máquina porém ao copiar para os servidor e tentar executar ele apresenta o seguinte erro.

 

"Could not find the main class: enviaemail.MontaEmail. Program will exit."
Copio a pasta do projeto toda para o servidor.
Já olhei algums topicos alguns falam sobre o manifest.mf, outros sobre a versão do jdk , inclusive em outros fóruns, google, enfim.
Hoje meu manifest.mf está assim
Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.EnviaEmail
Não sei o que fazer ou o que testar, será que alguem pode me ajudar ? Já tiveram Problema Parecido ??
Uso Netbeans 7.3, jdk 7 -
Desde já agradeço.

 

 

 

Tenta deixar o seu Manifest assim:

Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.MontaEmail

 

 

Tenta deixar o seu Manifest assim:

Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.MontaEmail

Opa fala meu caro, tive um retorno parecido, o rapaz do servidor comentou que pode ser algo relacionado ao jar que o netbeans cria

segue a mensagem:

"Couln not find the main class: enviaemail.MontaEmail. Program will exit."

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então agora nos resta especular. A versão da JVM do servidor é compatível com o código da sua aplicação? Você disse que a versão da sua JDK é 1.7. Verifique se a JVM do seu servidor pode executar Java 7.

 

Outra coisa que eu reparei foi nas dependências do seu projeto. Se você não estiver informando as dependências no classpath do comando de execução (java -classpath ... jar ...) será necessário fazê-lo no seu arquivo manifesto.

 

Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.MontaEmail
Class-Path: caminho/para/activation.jar caminho/para/mail.jar caminho/para/mysql-connector-java-5.1.24-bin.jar

Tenta isso aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo do tipo

 

Manifest-Version: 1.0
Created-By: Rodolfo U443015
Main-Class: enviaemail.MontaEmail
Class-Path: //server/qual/enviaEmail/lib/activation.jar //server/qual/enviaEmail/lib/mail.jar //server4/qual/enviaEmail/lib/mysql-connector-java-5.1.24-bin.jar
 

 

Fiquei em duvida entre "/" e "\"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, você deve colocar um caminho local. Afinal, o jar estará do seu aplicativo também estará no servidor. Imagine que dentro do servidor exista uma pasta chamada apps onde o seu caminho seria /home/user_server/apps. Coloque o seu aplicativo nesta pasta e crie uma pasta lib com todas as dependências do seu aplicativo. O seu manifesto ficaria algo do tipo:

Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.MontaEmail
Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-5.1.24-bin.jar

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Não, você deve colocar um caminho local. Afinal, o jar estará do seu aplicativo também estará no servidor. Imagine que dentro do servidor exista uma pasta chamada apps onde o seu caminho seria /home/user_server/apps. Coloque o seu aplicativo nesta pasta e crie uma pasta lib com todas as dependências do seu aplicativo. O seu manifesto ficaria algo do tipo:

Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.MontaEmail
Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-5.1.24-bin.jar

esta pasta lib existe

 

então ficacaria assim

 

 

 
Manifest-Version: 1.0
Created-By: Rodolfo U443015
Main-Class: enviaemail.MontaEmail
Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-5.1.24-bin.jar
 

 

nao precisa ser /lib ?

 

hahah, dificuldade com diretório já é sacanajem né rs.

 

abaixo a estrutura

 

estruturadearquivos.jpg

 

resultado do Limpar e Construir ( build e clean )

 

 

 
ant -f \\\\b828604\\qual\\enviaEmail clean jar
init:
deps-clean:
Updating property file: \\b828604\qual\enviaEmail\build\built-clean.properties
Deleting directory \\b828604\qual\enviaEmail\build
clean:
init:
deps-jar:
Created dir: \\b828604\qual\enviaEmail\build
Updating property file: \\b828604\qual\enviaEmail\build\built-jar.properties
Created dir: \\b828604\qual\enviaEmail\build\classes
Created dir: \\b828604\qual\enviaEmail\build\empty
Compiling 4 source files to \\b828604\qual\enviaEmail\build\classes
warning: [options] bootstrap class path not set in conjunction with -source 1.4
1 warning
compile:
Created dir: \\b828604\qual\enviaEmail\dist
Copying 1 file to \\b828604\qual\enviaEmail\build
Copy libraries to \\b828604\qual\enviaEmail\dist\lib.
Building jar: \\b828604\qual\enviaEmail\dist\enviaEmail.jar
To run this application from the command line without Ant, try:
java -jar "\\b828604\qual\enviaEmail\dist\enviaEmail.jar"
jar:
BUILD SUCCESSFUL (total time: 4 seconds)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o arquivo enviaEmail.jar na pasta /home/user_server/apps. Crie a pasta /home/user_server/apps/lib e coloque nela os arquivos activation.jar, mail.jar e mysql-connector-java-5.1.24-bin.jar .

 

Árvore:

/home/user_server/apps

|

|__enviaEmail.jar

|__lib

|__activation.jar

|__mail.jar

|__mysql-connector-java-5.1.24-bin.jar

 

O seu arquivo manifesto deve estar assim:

Manifest-Version: 1.0
Created-By: Rodolfo U443015
Main-Class: enviaemail.MontaEmail
Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-5.1.24-bin.jar

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Coloque o arquivo enviaEmail.jar na pasta /home/user_server/apps. Crie a pasta /home/user_server/apps/lib e coloque nela os arquivos activation.jar, mail.jar e mysql-connector-java-5.1.24-bin.jar .

 

Árvore:

/home/user_server/apps

|

|__enviaEmail.jar

|__lib

|__activation.jar

|__mail.jar

|__mysql-connector-java-5.1.24-bin.jar

 

O seu arquivo manifesto deve estar assim:

Manifest-Version: 1.0
Created-By: Rodolfo U443015
Main-Class: enviaemail.MontaEmail
Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-5.1.24-bin.jar

Fiz a estrutura, só esperando o pessoal do server chegar para que eu possa testar.

 

Não configurei as variáveis de ambiente no meu windows, isso pode interferir em algo na compilação ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não configurei as variáveis de ambiente no meu windows, isso pode interferir em algo na compilação ?

Pra compilar você só precisa do JAVA_HOME. E se você já compilou então é porque o sistema já sabia onde encontrar o Java.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Não, você deve colocar um caminho local. Afinal, o jar estará do seu aplicativo também estará no servidor. Imagine que dentro do servidor exista uma pasta chamada apps onde o seu caminho seria /home/user_server/apps. Coloque o seu aplicativo nesta pasta e crie uma pasta lib com todas as dependências do seu aplicativo. O seu manifesto ficaria algo do tipo:

Manifest-Version: 1.0
Created-By: Rodolfo
Main-Class: enviaemail.MontaEmail
Class-Path: lib/activation.jar lib/mail.jar lib/mysql-connector-java-5.1.24-bin.jar

 

Isso aqui funcionou! Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.