-
Eu instalei o plugin para o Eclipse “Fat Jar Eclipse Plug-In”
(http://fjep.sourceforge.net/#inst).
-
Eu criei um arquivo de lote “execute.bat”:
Resultado: Ele funcionou. Mas quando eu tento executar diretamente o JAR não funciona.
Se eu colocar as DLLs diretamente no diretorio raiz do projeto, ele executa (Stand-Alone), porém acabei descobrindo um outro problema.
- Ele procura o diretorio “libs” e “resources” fora do JAR.
ex:
- Funciona: “C:\teste”
- Erro: “C:\teste”
Mas as libs estão dentro dele, as dlls nativas, e o diretorio resources. Como faço pra ele olhar para “dentro do jar”?
Usei o comando System.setProperty(“java.library.path”, “.”); no metodo MAIN e coloquei as dlls direto no diretorio da classe que tem o metodo main. Mas nem assim funcionou. (Se funciona-se resolveria o problema das dlls, mas não o dele procurar o resources e lib fora do jar)
Michel,
apenas a nível de curiosidade o export de Runnable Jar do eclipse, não serviria nesse caso?
att,
Na verdade ele foi minha primeira tentativa, no começo achei que o problema fosse ele, instalei o plugin “FAT JAR”, mas claro, depois vi que não era, tanto que estou gerando pelo “export de Runnable Jar do eclipse” agora.
Mas continuo tendo os mesmos problemas acima.
Tudo que quero se resume nesta frase: “Quero que o cliente receba apenas o executavel.jar pelo JavaWebStart e com ele possa abrir o jogo”.
@Edit
Se quiser baixar pra testar:
Manifest-Version: 1.0
Rsrc-Class-Path: ./ xalan.jar jdom.jar commons-collections-3.2.1.jar
Rsrc-Main-Class: Main
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
seu Manifest.version ta parecido?
att,
[quote=pedruhenrik]Manifest-Version: 1.0
Rsrc-Class-Path: ./ xalan.jar jdom.jar commons-collections-3.2.1.jar
Rsrc-Main-Class: Main
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
seu Manifest.version ta parecido?
att,[/quote]
Ele esta assim:
MANIFEST.MF
Na verdade o eclipse gerou ele automaticamente deste jeito.
Da próxima vez usa o netbeans, muito melhor
acho q a única diferença entre os nossos é:
Class-Path: .
estranho nunca tive problemas com jars executáveis com o eclipse.
Michel, quando vc gera o jar, se vc descompactar os jars estão incluidos?
não é por frases desse tipo q começam discussões “o meu é melhor e o seu não” ???
att,
[quote=pedruhenrik]acho q a única diferença entre os nossos é:
Class-Path: .
estranho nunca tive problemas com jars executáveis com o eclipse.
Michel, quando vc gera o jar, se vc descompactar os jars estão incluidos?
não é por frases desse tipo q começam discussões “o meu é melhor e o seu não” ???
att,[/quote]
Sim, quando descompacto e vou olhar o conteudo, ele deixa as libs(*.jars) direto na raiz.
Tenho vários jars que executam diretamente, com bibliotecas dentro dele e não tive este problema também. Por curiosidade, qual a versão do Eclipse que você está utilizando? Você tentou mudar o class path, adicionando o “.”?
Sem comentários.
Consegui fazer ele executar diretamente pelo “JMMORPG.jar” (Exportei novamente pelo Eclipse), mas desta vez deixeiassim:
Percebi que o problema na lib era ofato de eu usar os recursos inseridos dentro do “resources.jar” (Nada mais é que minha pasta resource compactada).
Bom agora minhas perguntas mudaram:
-
Como faço pra usar o resource.jar que esta dentro do meu jar (ou terei que que sempre baixarambos pelo JWS)?
-
Tem alguma maneira de executar uma native library por dentrodo meu projeto?
- No link abaixo o rapaz da um exemplo, tentei usar, inclusive testei, mas não aconteceu nada na hora H, acho que passei os parametros errados no {loadDynamicLibrary(“com.amattiuz”, “MinhaLibLinda”);} minhas natives ficam em “JMMORPG/libs/natives”.
- Exemplo de como passei os parametros:
Site: http://www.guj.com.br/prepost/243014/1256214/jni-no-glassfish