Boa Tarde…sou novo em Java e estou com o seguinte problema, tenho um cliente em São Paulo e a maquina dele é em Linux, desenvolvi um javamail e mandei o .jar na maquina dele via vpn, só que não estou conseguindo rodar esse .jar na maquina dele, na minha maquina que é wuindows 7 esse .jar roda normal. Esse é o erro.
Como está configurado o Class-Path do seu arquivo manifest?
Como você está chamando o .jar no linux?
C
Carbachuts
java -jar nome_do_arquivo.jar
KWill
Carbachuts:
Boa Tarde…sou novo em Java e estou com o seguinte problema, tenho um cliente em São Paulo e a maquina dele é em Linux, desenvolvi um javamail e mandei o .jar na maquina dele via vpn, só que não estou conseguindo rodar esse .jar na maquina dele, na minha maquina que é wuindows 7 esse .jar roda normal. Esse é o erro.
Acredito que pode ser culpa da IMENSAMENTE ÉPICA E ENORME “cagada” de várias distribuições Linux instalarem POR PADRÃO GCJ como JVM e JDK ao invés de instalarem o JRE/JDK distribuidos pela Sun+Oracle. Até meu notebook HP já vinha com JRE da Sun+Oracle.
Tive inúmeros problemas para desenvolver em AWT/Swing de forma que rodasse bem no GCJ, até que mandei o AWT/Swing pro espaço e usei SWT no lugar.
Recomendo instalar o JRE/JDK da Sun+Oracle.
Pelo que dá para ver o GCJ não gosta do parâmetro “-jar”, então coloque o seu jar como parâmetro no classpath via “-cp” e passe também o nome da “main-class”, porque não sei se o GCJ procura sozinho pela “main-class” nos manifests.
Inté.
renanedpedroso
Poste o conteúdo do Manifest aqui…
Poste também as bibliotecas que você está utilizando.
Sou novo em Java, como faço para ver o conteudo do manifest…
eh isso??
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
renanedpedroso
Carbachuts, preciso do conteúdo do arquivo Manifest.
C
Carbachuts
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 16.0-b13 (Sun Microsystems Inc.)
Main-Class: claudir.Main
Class-Path: lib/activation.jar lib/mail.jar
X-COMMENT: Main-Class will be added automatically by build
eh isso??
renanedpedroso
Tente o seguinte…
Vá no diretório de onde você está tentando executar seu jar e adicione os jars das bibliotecas de acordo com o Class-Path do seu Manifest:
Exemplo:
No diretório
c:\temp\
Existe o seu jar
c:\temp\ArquivoPrincipal.jar
Então você terá que criar uma pasta lib
c:\temp\lib\
E dentro dessa pasta adicionar seus jars (bibliotecas)
c:\temp\lib\activation.jar
c:\temp\lib\mail.jar
Ao executar ele tenta ‘encontrar’ suas bibliotecas de acordo com o que está informado no Class-Path do Manifest.
Copie a pasta lib com seus jars para a mesma pasta onde o jar se encontra.
Espero ter ajudado.
Abraço!
KWill
Afinal, tentaram ou não instalar JRE/JDK da Sun+Oracle nessa máquina Linux? Ou ainda não perceberam que pelo jeito estão usando GCJ?
Inté.
renanedpedroso
Kwill, tudo bem?
Eu acho que devemos verificar o problema mais comum primeiro e, assim que tudo estiver configurado (nos conformes) aí sim podemos pensar nessa possibilidade da máquina virtual.
Não estou criando conflitos, só acho que é melhor verificar o problema pelo modo mais fácil e depois verificar outros problemas mais esporádicos.
Geralmente a dificuldade que as pessoas têm com arquivos .jar é e adição dos arquivos .jar (das bibliotecas) no mesmo diretório.
Abraço!
C
Carbachuts
Ta instalado sim…o banco de la eh oracle tbm…mais o erro persiste
renanedpedroso
Já tentou verificar o meu 4º post?
Abraço!
KWill
Carbachuts:
Ta instalado sim…o banco de la eh oracle tbm…mais o erro persiste
Não seria questão apenas de averiguar se tá instalado o JRE/JDK da Sun+Oracle, tem que ver se é o que tá configurado para rodar como padrão. Peça para digitarem num terminal nessa máquina Linux: “java -version” ou “java --version”. Se aparecer um tal de OpenJDK no meio do terminal, o treco tá bichado, precisa configurar para usar o JRE da Sun+Oracle ou fazer uso de alguns macetes que podem acabar parecendo magia negra.
Eu não perderia muito o meu tempo tentando fazer rodar no GCJ e para mim o que tá rodando agora é o GCJ mesmo, basta olhar um pouco o stacktrace do primeiro post do tópico…
Inté.
C
Carbachuts
Sim…fiz o seu 4° post e o erro eh o msm…pq roda aki no meu pc de boa e la naum
renanedpedroso
Agora sim recomendo verificar o que o KWill te orientou a fazer.
C
Carbachuts
Java version 1.4.2
gcj (gcc)3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
renanedpedroso
Acho que o KWill estava com a razão desde o início…
Tente mudar a versão da máquina virtual.
Não entendo muito desse problema de máquina virtual no linux, creio que o KWill poderá te ajudar mais do que eu.
KWill
Carbachuts:
Java version 1.4.2
gcj (gcc)3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
GCJ confirmado.
Vejo dois caminhos:
Instalar o JRE da Sun+Oracle e botar ele como padrão para rodar aplicações Java.
Modificar o script de inicialização, pois o gcj parece continuar meio burro a ponto de ignorar o manifest (http://gcc.gnu.org/java/projects.html).
Na modificação do script, em vez do “-jar”, você precisa passar o caminho de todos os jars que são usados com “-cp [jar1]:[jar2]:[…]”, além de dar o nome da “main-class” nesse script de inicialização.
Esse gcj instalado e configurado aí tá ficando velho mesmo, é baseado no GCC versão 3.4.3, liberado em 2004. A última versão do GCC liberada é a 4.4.3.
Inté.
C
Carbachuts
Resolvido…muito obrigado…
KWill
Resolveu como?
Inté.
C
Carbachuts
Adicionou os dois .jar da past lib, no classpath da maquina Linx…mais teve que criar um executavel no banco para rodar o jdk 1.6…vlw