.exe

22 respostas
_

alguém sabe se é possível transformar um projeto java em executavel do windows? se sim, pode me informar como?
senão, me expliquem melhor sobre .jar, como criar etc.

grato!

22 Respostas

T

Bom… sua resposta é… SIM e NÃO…

vc não pode transformar o seu projeto em um .exe … porem!!..

existem um programa o exe4j é um… que cria um arquivo .exe q é como um atalho pra executar o seu projeto… ele xama o seu arquivo.jar… e roda ele

vc vai precisar mesmo assim… de uma JRE onde for rodar o programa…

esse programa ai vc encontra em … www.exe4j.com … e é pago… tem um outro free… não sei onde encontra…

este programa aceita tb… deixar o arquivo .jar dentro do .exe … mas mesmo assim… vc precisa do .jar… bom…

quanto a criar o .jar… espero outro te dar a dica… eu crio sempre pela IDE … ai fica mais complicado de explicar…

H

Existem produtos que fazem isso, mas, em minha opinião o único ganho real é perda de portabilidade do programa.

Para distribuição de produtos Java na plataforma Windows, eu recomendaria o uso de um instalador grátis, como o Inno (http://www.jrsoftware.org/isinfo.php), ou pago como o InstallAnywhere.

Como referência, eis um exemplo de arquivo .iss usado no Inno.

; SISTEMA YYY
[Setup]
AppName=yyy
AppVerName=yyy-1.0
AppPublisher=xxx
AppPublisherURL=http://www.xxx.com.br
AppSupportURL=http://www.xxx.com.br
AppUpdatesURL=http://www.xxx.com.br
DefaultDirName={sd}\yyy\
DefaultGroupName=yyy
LicenseFile=\java\yyy\licenca.txt

[Tasks]
Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"

[Files]
Source: "C:\java\yyy\ajuda\*.*"; DestDir: "{app}\ajuda"; Flags: ignoreversion
Source: "C:\java\yyy\html\dinamico\*.*"; DestDir: "{app}\html\dinamico"; Flags: ignoreversion
Source: "C:\java\yyy\etc\yyy.cert"; DestDir: "{app}\etc"; Flags: ignoreversion
Source: "C:\java\yyy\jre\*.*"; DestDir: "{app}\jre"; Flags: ignoreversion
Source: "C:\java\yyy\jre\bin\*.*"; DestDir: "{app}\jre\bin"; Flags: ignoreversion
Source: "C:\java\yyy\jre\bin\client\*.*"; DestDir: "{app}\jre\bin\client"; Flags: ignoreversion
Source: "C:\java\yyy\jre\bin\server\*.*"; DestDir: "{app}\jre\bin\server"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\*.*"; DestDir: "{app}\jre\lib"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\audio\*.*"; DestDir: "{app}\jre\lib\audio"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\cmm\*.*"; DestDir: "{app}\jre\lib\cmm"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\ext\*.*"; DestDir: "{app}\jre\lib\ext"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\fonts\*.*"; DestDir: "{app}\jre\lib\fonts"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\i386\*.*"; DestDir: "{app}\jre\lib\i386"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\im\*.*"; DestDir: "{app}\jre\lib\im"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\images\cursors\*.*"; DestDir: "{app}\jre\lib\images\cursors\"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\security\*.*"; DestDir: "{app}\jre\lib\security"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\*.*"; DestDir: "{app}\jre\lib\zi"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Africa\*.*"; DestDir: "{app}\jre\lib\zi\Africa"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\America\*.*"; DestDir: "{app}\jre\lib\zi\America"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\America\Indiana\*.*"; DestDir: "{app}\jre\lib\zi\America\Indiana"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\America\Kentucky\*.*"; DestDir: "{app}\jre\lib\zi\America\Kentucky"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\America\North_Dakota\*.*"; DestDir: "{app}\jre\lib\zi\America\North_Dakota"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Antarctica\*.*"; DestDir: "{app}\jre\lib\zi\Antarctica"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Asia\*.*"; DestDir: "{app}\jre\lib\zi\Asia"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Atlantic\*.*"; DestDir: "{app}\jre\lib\zi\Atlantic"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Australia\*.*"; DestDir: "{app}\jre\lib\zi\Australia"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Etc\*.*"; DestDir: "{app}\jre\lib\zi\Etc"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Europe\*.*"; DestDir: "{app}\jre\lib\zi\Europe"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Indian\*.*"; DestDir: "{app}\jre\lib\zi\Indian"; Flags: ignoreversion
Source: "C:\java\yyy\jre\lib\zi\Pacific\*.*"; DestDir: "{app}\jre\lib\zi\Pacific"; Flags: ignoreversion
Source: "C:\java\yyy\leiame.txt"; DestDir: "{app}"; Flags: ignoreversion isreadme;
Source: "C:\java\yyy\lib\*.*"; DestDir: "{app}\lib"; Flags: ignoreversion

; arquivo exclusivo para win98
[Files]
Source: "C:\java\yyy\bin\win98\yyy.bat"; DestDir: "{app}\bin"; Flags: ignoreversion; MinVersion: 4.0,0

; arquivo exclusivo para Win NT, 2000 e XP
[Files]
Source: "C:\java\yyy\bin\winnt\yyy.bat"; DestDir: "{app}\bin"; Flags: ignoreversion; MinVersion: 0,4.0

[Icons]
Name: "{group}\yyy"; Filename: "{app}\bin\yyy.bat"; WorkingDir: "{app}";  IconFilename: "{app}\www\imagem\yyy.ico";
Name: "{userdesktop}\yyy"; Filename: "{app}\bin\yyy.bat"; Tasks: desktopicon; WorkingDir: "{app}"; IconFilename: "{app}\www\imagem\yyy.ico";
Name: "{group}\Uninstall yyy"; Filename: "{uninstallexe}";

[Run]
Filename: "{app}\bin\yyy.bat"; Description: "Lança o yyy"; Flags: shellexec postinstall skipifsilent; WorkingDir: "{app}"; Parameters: "{app} -r";

[Registry]
; Start "Software\My Company\My Program" keys under HKEY_CURRENT_USER
; and HKEY_LOCAL_MACHINE. The flags tell it to always delete the
; "My Program" keys upon uninstall, and delete the "My Company" keys
; if there is nothing left in them.
Root: HKCU; Subkey: "Software\xxx"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\xxx\yyy"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\xxx"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "Software\xxx\yyy"; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\xxx\yyy\Settings"; ValueType: string; ValueName: "Path"; ValueData: "{app}"

[UninstallDelete]
Type: filesandordirs ; Name: "{app}"
Type: files ; Name: "{sd}\my.cnf"

Repare que existe um arquivo yyy.bat, lançador do programa.

M

…e essa aqui é a minha dica:

http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=7

L

Ai galera so me metendo na questão tipo o Inno serve somente para criar uma Instalação e não para fazer seu projeto um exe, eu consegui um programa em versao GNU que diz transformar meus class em linguagem de maquina, sendo assim, um tipico EXE, contudo ele somente gera 2 ou 3 projetos antes de comecar a mostrar uma msg para comprar uma outra versão.

Se alguem precisar do link passo via email.

A

eu prefiro usar .jar, mas antes de saber fazer um .jar, eu criava executáveis em c++:

#include <stdlib.> // biblioteca do comando system

void main()

{

system(java arquivo.class);

//  o comando system vai chamar o java.exe* que vai executar o .class

//  arquivo.class é o nome do arquivo .class que voce compilou

//  não precisa colocar .class

}

*se o java.exe não extiver no path do windows, voce pode copiar este programa para o diretório onde está o .class que será executado (esse .exe c++ tambem deve estar no mesmo diretório); ou ainda indicar o endereço do java.exe:
system(c:\jdk14\bin\java arquivo.class); não esqueça de colocar duas barras “\” e não apenas uma.

Espero estar ajudando…

icsoftware, por favor me mande o link desse programa que vc tá falando…
[email removido]

I

aproveitando esse tópico… qto aos .jar

como crio usando a IDE Eclipse…

pois eu utilizei o Export… ai ele cria o .jar… qdo dou 2 clickes no .jar

ele dá um erro dizendo q naum encontra o Main-Class Manifest

alguém sabe me dizer o q fazer???

T

“italobraz”:
aproveitando esse tópico… qto aos .jar

como crio usando a IDE Eclipse…

pois eu utilizei o Export… ai ele cria o .jar… qdo dou 2 clickes no .jar

ele dá um erro dizendo q naum encontra o Main-Class Manifest

alguém sabe me dizer o q fazer???

Quando vc pedir para exportar… vc vai dando NEXT… ate chegar no ultimo next…

neste ultimo next… tem lá embaixo… pra vc escolher a Main-Class

ai ele vai criar um que execute ao dar 2 clikes…

abraços

_

“adrianodonisete”:
eu prefiro usar .jar, mas antes de saber fazer um .jar, eu criava executáveis em c++:

#include <stdlib.> // biblioteca do comando system

void main()

{

system(java arquivo.class);

//  o comando system vai chamar o java.exe* que vai executar o .class

//  arquivo.class é o nome do arquivo .class que voce compilou

//  não precisa colocar .class

}

*se o java.exe não extiver no path do windows, voce pode copiar este programa para o diretório onde está o .class que será executado (esse .exe c++ tambem deve estar no mesmo diretório); ou ainda indicar o endereço do java.exe:
system(c:\jdk14\bin\java arquivo.class); não esqueça de colocar duas barras “\” e não apenas uma.

Espero estar ajudando…

icsoftware, por favor me mande o link desse programa que vc tá falando…
[email removido]

Muito show!!! gostei muito dessa acochambração com o C++ !!!
mas eu keria ainda mais… uma forma de criar executavel java sem a maquina possuir jvm

T

Tem q ter a JVM=P…

o maximo q vc pode fazer… é fazer uma copia junto ao seu programa da JVM … saum 15 megas a +
c pode por só a pasta jre … e rodar o .jar com um .bat … apontando para o caminho relativo do JRE

Carter”:

Muito show!!! gostei muito dessa acochambração com o C++ !!!
mas eu keria ainda mais… uma forma de criar executavel java sem a maquina possuir jvm

A

Carter,
pra uma aplicação java funcionar é necessário que o micro tenha o JVM, senão não funciona, faça o que o Tomaz falou…

Tomaz,
explica mais sobre esse negócio de colocar o JVM junto do programa, é que eu to querendo fazer um programa em java que vai rodar direto no cd rom, se eu fizer isso que voce falou eu posso rodar em qualquer micro, mesmo que esses micros nao tenham o JVM…

eu queria saber onde conseguir esse arquivo de 15 MB que voce tá falando…

obrigado,
até mais

E

Olá a todos.

Quanto a transformar a aplicação java em aplicação .exe existe uma ferramenta que estamos testando que, aparentemente, é a única que realmente transforma seu código em executável windows.
Ele passa por uma fase onde transforma seus códigos em objetos C para posteriormente compilá-los, mas lembre-se, a portabilidade vai para o limbo. Além disso, a ferramenta é paga.
A empresa detentora da ferramenta disponibiliza uma versão personal do produto, mas o executável gerado funciona apenas em sua máquina. Ele provavelmete cria um registro no windows onde valida algumas informações, mas não fui a fundo para descobrir.
A ferramenta que estamos testando chama-se JET Excelsior, que é capaz de gerar um .exe, .dll ou serviço Windows. A versão para Linux ainda está na versão beta.
Segue a url:
http://www.excelsior-usa.com/jet.html

Boa sorte.
Ederson.

T

“EdersonSoares”:
é a única que realmente transforma seu código em executável windows.
bom parece que não entrei no link que vc me deu… e a 1º coisa que me apareceu foi o seguinte…
" Developer’s Perspective

Excelsior JET is a Java VM implemented as a combination of three major components: " … ou seja… é uma JVM por isso não precisa que vc tenha instalado =]

“adrianodonisete”:
Carter,
pra uma aplicação java funcionar é necessário que o micro tenha o JVM, senão não funciona, faça o que o Tomaz falou…

Tomaz,
explica mais sobre esse negócio de colocar o JVM junto do programa, é que eu to querendo fazer um programa em java que vai rodar direto no cd rom, se eu fizer isso que voce falou eu posso rodar em qualquer micro, mesmo que esses micros nao tenham o JVM…

eu queria saber onde conseguir esse arquivo de 15 MB que voce tá falando…

obrigado,
até mais

Adriano Donisete…
bom cara… o JRE vem junto do seu SDK… no meu computador ela está nesse endereço

C:\j2sdk1.4.2_03\jre

bom ai c vc por isso dentro de um CD

dentro da pasta bin é q tem os executaveis… ai só vc por no bat… o endereço de la dentro do CD… q executa… ou se vc usar o exe4java … ele pergunta onde está o JRE… =]

outra coisa… c naum vai poder executar em qualquer computador naum… só vai poder executar em PC que usar a mesma JVM… tipo minha JVM é Windows… se eu gravala em CD… só vai funfar nos RUINDOWS

F

“TomazLavieri”:
Tem q ter a JVM=P…

o maximo q vc pode fazer… é fazer uma copia junto ao seu programa da JVM … saum 15 megas a +
c pode por só a pasta jre … e rodar o .jar com um .bat … apontando para o caminho relativo do JRE

Carter”:

Muito show!!! gostei muito dessa acochambração com o C++ !!!
mas eu keria ainda mais… uma forma de criar executavel java sem a maquina possuir jvm

Negativo…

Pessoal o Jbuilder tem um opção em transformar seu aplicativo em .exe nativo do ruwindos… Aunica coisa que deve-se ter instalado é o plugin que v c pega no site da sun…Nada mais…

T

e o que seria esse plug-in?? … manda o link ai??

“FelipeSS_2”:

Negativo…

Pessoal o Jbuilder tem um opção em transformar seu aplicativo em .exe nativo do ruwindos… Aunica coisa que deve-se ter instalado é o plugin que v c pega no site da sun…Nada mais…

A

Adriano Donisete…
bom cara… o JRE vem junto do seu SDK… no meu computador ela está nesse endereço

C:\j2sdk1.4.2_03\jre

bom ai c vc por isso dentro de um CD

dentro da pasta bin é q tem os executaveis… ai só vc por no bat… o endereço de la dentro do CD… q executa… ou se vc usar o exe4java … ele pergunta onde está o JRE… =]

outra coisa… c naum vai poder executar em qualquer computador naum… só vai poder executar em PC que usar a mesma JVM… tipo minha JVM é Windows… se eu gravala em CD… só vai funfar nos RUINDOWS

tomaz,

quando eu disse “rodar em qualquer micro” eu tava querendo dizer qualquer micro com o mesmo SO que eu fosse fazer, nesse caso no windows, esqueci desse “pequeno” detalhe… rsrs

só mais uma dúvida, eu vou fazer um .jar pra rodar o programa. Como que eu faço pra esse executável saber onde vai estar o JRE, dentro do CD?? (vai tá tudo dentro do CD) …

desde já obrigado, você tá ajudando bastante…

T

bom… vc pode colocar o .jar dentro da pasta do JRE… e ai é só ter um atalho pro .jar que ele roda…

bom… vc usa -clinte ou -server (axo eu que são esses…) eu não sei direito pq uso um programa que faz o .exe =] … ai não sei como setar a makina virtual junto

A

Tomaz

eu fiz o que voce falou coloquei o .jar dentro da pasta JRE, só que não roda, ele não acha a máquina virtual…
eu ainda não gravei num CD, eu fiz o seguinte:
copiei a pasta JRE pra um micro que não tinha a JVM e coloquei o .jar dentro, deveria funcionar como voce disse…
pra começar o .jar não é reconhecido (não aparece aquele ícone padrão dos .jar, é pq não tem a JVM), então se eu clicar no .jar, o windows me pergunta com qual programa eu desejo abrir…
então eu entro no dos (dentro da pasta bin), e mando: java arquivo.class, aí aparece um monte de mensagem de erro…

como é que eu devo fazer pra funcionar ou não é possível ???
Voce alguma vez fez isso ???

S

“TomazLavieri”:
“italobraz”:
aproveitando esse tópico… qto aos .jar

como crio usando a IDE Eclipse…

pois eu utilizei o Export… ai ele cria o .jar… qdo dou 2 clickes no .jar

ele dá um erro dizendo q naum encontra o Main-Class Manifest

alguém sabe me dizer o q fazer???

Quando vc pedir para exportar… vc vai dando NEXT… ate chegar no ultimo next…

neste ultimo next… tem lá embaixo… pra vc escolher a Main-Class

ai ele vai criar um que execute ao dar 2 clikes…

abraços

Fiz oq disse… ´em casa funcionou… mas na faculdade o .jar não funcionou abriu a tela de “abrir como” q “porgrama” uso para abrir esse .jar???
aguardo resposta

A

sapper_rj escreveu:

Fiz o q disse… ´em casa funcionou… mas na faculdade o .jar não funcionou abriu a tela de “abrir como” q “porgrama” uso para abrir esse .jar???
aguardo resposta

o .jar é um executável do java e só roda em micros que tem a máquina virtual java instalada, por isso o windows pergunta com qual programa vc deseja executar, é que o ruindows não reconhece arquivos .jar

espero ter ajudado…

S

“adrianodonisete”:

o .jar é um executável do java e só roda em micros que tem a máquina virtual java instalada, por isso o windows pergunta com qual programa vc deseja executar, é que o ruindows não reconhece arquivos .jar

espero ter ajudado…

Correto, mas nesse micro q falei… q o .jar não abriu, tem a MVJ, pois compilo, e executo aplicaçõies em java, só não consigo usar o .jar

A

Talvez seja o .jar que esteja com problema. vc já testou em outros micros, se funcionar em outro micro o problema pode ser o esse micro, deve tá com pau…

desinstala e instala de novo a JVM

até mais

S

“adrianodonisete”:
Talvez seja o .jar que esteja com problema. vc já testou em outros micros, se funcionar em outro micro o problema pode ser o esse micro, deve tá com pau…

desinstala e instala de novo a JVM

até mais

O .jar aki em casa funcionou e a JVM, da faculdade aparenta esta legal, pois consigo compilar e executar (comando javac e o java), numa boa…

Criado 21 de março de 2004
Ultima resposta 6 de mai. de 2004
Respostas 22
Participantes 10