• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

amiloM1425

Criar exe

13 mensagens neste tópico

Olá,

alguém me pode explicar como posso criar um exe do projecto de forma rápida e eficaz?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Java não é compilavél nativamente como C ou C++, podes é criar uma jar que é tipo um exe do java.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Java não é compilavél nativamente como C ou C++, podes é criar uma jar que é tipo um exe do java.

Por acaso até é, mas isso é outra história, e exes são coisas apenas de windows...

Queres um ficheiro .exe ou queres um executável? Um Jar é o tipo de ficheiros que é usado para agregar todos os recursos de uma aplicação Java e, se definires a classe principal, vai comportar-me do mesmo modo que um .exe.

Criar um Jar vai depender do tipo de ferramentas que usas, embora o javac seja responsável pela criação do jar, e portanto podes ver no manual como criar jars executáveis, costuma ser mais simples usar os comandos do IDE, logo vai depender do IDE que estás a usar.

Se realmente pretendes um .exe, então precisas de usar um dos vários wrappers que existem e que vão, de forma simples, invocar o teu jar para executar a aplicação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se realmente pretendes um .exe, então precisas de usar um dos vários wrappers que existem e que vão, de forma simples, invocar o teu jar para executar a aplicação.

Sim, o ideal seria mesmo ser um ficheiro seria um .exe

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já encontrei uma solução.

Obrigado na mesma pelas vossas respostas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alguns wrappers que podes usar, é só escolher:

http://www.dobysoft.com/products/nativej/faq.html

http://jsmooth.sourceforge.net/

http://launch4j.sourceforge.net/

http://jstart32.sourceforge.net

Algo a ler sobre criar "exes" de aplicações Java, http://www.excelsior-usa.com/articles/java-to-exe.html

Já encontrei uma solução.

Tanto o magician como eu te tinhamos dado a solução :)

Mas por curiosidade, criar um .exe é realmente necessário? Isso mata um pouco a ideia de se estar a utilizar Java.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Knitter, já agora, em relação aos wrapper, qual consideras o melhor e porquê?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sinceramente, nenhum. Não conheço situação alguma onde um exe, em Java, faça sentido, e mesmo nas que poderia ser discutível é possível, sem acrescentar mais uma ferramenta ao desenvolvimento, resolver os problemas.

Por outro lado, caso seja necessário, e até posso compreender a vontade de fornecer um executável no "formato" da plataforma onde a aplicação vai correr, JSmoth pela simplicidade, fiabilidade e rapidez com que se cria um wrapper, Launch4j pelo conjunto maior de funcionalidades e pelo maior número de utilizadores, que se traduz em suporte mais acessível e/ou vasto.

Existem várias aplicações deste tipo no mercado, cada uma com as suas características e a minha avaliação sofre por não ter experimentado nem metade das que existem e pela minha experiência se centrar muito nos objectivos dos projectos em que me envolvi, mas a minha recomendação irá mesmo para estes dois sistemas, JSmoth e Launch4j.

Mas não há muito a dizer, aquilo que fazem tem, apesar de muito procurado, um objectivo muito limitado, e na maioria das situações que conheço o dito "exe" não acrescenta qualquer valor, apenas mais um passo no desenvolvimento. A nível de funcionalidades as aplicações existentes andam todas pelo mesmo, algumas usam ficheiros XML para as configurações, outras oferecem interfaces gráficas, mas acabam todas por permitir criar o ficheiro .exe que, ou engloba toda a aplicação, ou inicia o Jar da aplicação Java, permitem procurar no sistema por uma JVM e direccionar para o site de download caso não existe. Algumas, como o JSmoth e o Launch4j oferecem a possibilidade de incluir uma JVM no wrapper, criando assim uma aplicação que, para todos os efeitos, não depende da existência de Java compatível nos computadores onde executa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu usei o JSmoth e fiquei satisfeito.

Concordo com o que o Knitter disse, simples, fiável e rápido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Knitter, a vantagem dos wrappers é baixar a complexidade de deployment e evitar problemas ao utilizador quando se distribui uma aplicação stand-alone.

Ultimamente tenho desenvolvido RPC RCPs , pelo que o executável nativo para a plataforma é disponibilizado pelo próprio Eclipse. Como nunca usei um wrapper, fiquei com curiosidade em saber mais.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

RPCs ou RCPs?

A complexidade poderá existir no caso da aplicação necessitar de configurações ou de suportar configurações que não são comuns ou suportadas pela plataforma Java.

Em todos os aspectos do Windows, excepto no caso dos serviços do sistema, um Jar executável é igual a um .exe, funcionam da mesma maneira, e resultam no mesmo.

Se pretenderes garantir que a aplicação funciona correctamente, então, é minha opinião, que isso são pormenores de instalação e portanto resolvidos pelo sistema de instalação. Criar um wrapper é, na maioria dos casos, tapar o problema, porque se o Jar não funciona alguma coisa está errada, ou na aplicação ou nas suas configurações, e a criação do wrapper vai esconder esse problema em vez de o resolver.

Não digo que não tenham utilidade, muito pelo contrário, são úteis mas em situações muito particulares, infelizmente esta é uma pergunta que acaba por ser recorrente pelos motivos errados, os wrappers têm o seu propósito, apenas considero que a maioria dos casos, a sua aplicação é errada e adiciona mais um passo e mais um sistema no desenvolvimento.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

RCPs. :) Já corrigi.

Permite-me discordar parcialmente contigo no ponto em que dizes que se o problema é de deploy então deve ser resolvido pelo sistema de instalação.

Se tens uma aplicação stand-alone que é um Jar e a queres distribuir usar um wrapper com a JVM embebida é uma excelente solução pois elimina problemas do tipo:

- o utilizador não tem uma JVM instalada

- o utilizador tem uma JVM instalada mas não está em path pelo que um duplo clique não funciona e não possui conhecimentos suficientes para ultrapassar a situação

- o utilizador tem uma JVM instalada mas é incompatível com o teu Jar

- o utilizador não tem uma JVM nem tem uma ligação à net para fazer download

- o utilizador não tem uma JVM e não pode/deve/sabe instalar a JVM, mesmo que o setup de instalação faça o download e execute a instalação (por exemplo, o utilizador ainda tem de concordar com as licenças e pode já ter uma JVM instalada incompatível com o teu Jar e a instalação de uma nova JVM pode comprometer outras aplicações que dependem da JVM instalada, etc.)

Ou seja, vejo o wrapper como uma excelente solução para eliminar problemas e permitir que a tua aplicação corra sem problemas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

RCPs. :) Já corrigi.

Aplicações em plataformas ricas é algo que tenho gostado de desenvolver, embora se a plataforma NetBeans em detrimento da Eclipse RCP.

Permite-me discordar parcialmente contigo no ponto em que dizes que se o problema é de deploy então deve ser resolvido pelo sistema de instalação.

Permito sempre :) mas

- o utilizador não tem uma JVM instalada -> O sistema de instalação detecta e instala.

- o utilizador tem uma JVM instalada mas não está em path pelo que um duplo clique não funciona e não possui conhecimentos suficientes para ultrapassar a situação -> O duplo clique não é definido pelo path, e novamente, o sistema de instalação pode resolver a situação automaticamente.

- o utilizador tem uma JVM instalada mas é incompatível com o teu Jar -> O sistema de instalação instala o que precisa.

- o utilizador não tem uma JVM nem tem uma ligação à net para fazer download -> O JRE é colocado no sistema de instalação para precaver essas situações.

- o utilizador não tem uma JVM e não pode/deve/sabe instalar a JVM, mesmo que o setup de instalação faça o download e execute a instalação (por exemplo, o utilizador ainda tem de concordar com as licenças e pode já ter uma JVM instalada incompatível com o teu Jar e a instalação de uma nova JVM pode comprometer outras aplicações que dependem da JVM instalada, etc.) -> Um bom sistema de instalação não compromete qualquer outra aplicação, aliás, se estás a usar Eclipse para desenvolver, o IDE vem com uma JVM da IBM, tal como o Aptana, ou tantos outras aplicações feitas nesse plataforma, e essa JVM não causa problemas :)

Ou seja, vejo o wrapper como uma excelente solução para eliminar problemas e permitir que a tua aplicação corra sem problemas.

Eu vejo-o como algo que esconde o problema, os pontos que indicaste podem ser resolvidos com configurações correctas da aplicação, que são colocadas, por exemplo, no MANIFEST.MF do Jar, e que resolvem esses problemas.

São formas diferentes de ver as coisas, eu prefiro que seja o sistema de instalação a controlar alguns desses problemas, ajudando o utilizador a fornecer o input necessário para que tudo funcione, na maioria dos caso não é mais que uma simples indicação se pretende que seja feito automaticamente ou não. Mas compreendo que até isso possa ser difícil para um utilizador, e sim, o wrapper poderá arrumar logo o assunto.

Como nota, ainda estou em choque por ter perdido quase uma semana de volta de um "não problema", identificado por duas contabilistas que não sabiam calcular valores com IVA.... por isso, acho que consigo concordar bem contigo no que toca ao wrapper resolver o problema de forma mais simples :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora