# Application java



## helice (11 Mars 2004)

Bonjour,
J'ai déja parlé de mon problème dans le forum mac OsX mais on m'a dit de le refaire ici. Je suis toute nouvelle sous Mac ça fait 15jours que l'on m'a confié celui ci (un G4 avec os 10.1.1).
	

	
	
		
		

		
			




Voila j'ai développé une appli java grace au soft eclipse et ceci sous windows. Le pb c'est kil faut ke cette application tourne sous Mac osx pour cela j'ai utilisé Installanywhere pour une installation multiplateforme (bin koi? on a le droit de rêver). Evidemment ça ne fonctionne pas, il me dit ke l'application a quitté inopinément. Je pensais que ça venait de la machine virtuelle et/ou d'un PATH a déclarer (j'ai deja eu ce pb sous linux) mais je ne sais pas quoi modifier ni ou aller voir.
Sinon j'ai les sources vous pensez que je peux les recompiler sous osX. Vous me conseillez koi pour ça?
	

	
	
		
		

		
		
	


	




Merci d'avance


----------



## eTeks (11 Mars 2004)

Tu n'as besoin de rien compiler puisque ton appli est en Java  
	

	
	
		
		

		
		
	


	



Pour créer un installateur sous MacOS, le plus simple est d'installer les developper tools si ça n'est pas déjà fait, puis d'utiliser PackageMaker.
Autre conseil, crée une application au look MacOS à partir de tes fichiers .class avec Jar Bundler...


----------



## HommeCocoa (8 Septembre 2006)

Désolé de faire ressortir un si vieux sujet...

Mais je suis en train de tenter de faire de mon application un executable et en faisant un peu de recherche j'ai trouvé que ce sujet s'y apparentait passablement...  

Voilà alors pour le rendre executable sur Mac OS X, j'ai trouvé comme faire, j'ai fais un clique droite sur le projet puis Export>Mac OS X application bundle.
Et je suis très content car ça marche super bien.

Par contre, maintenant, j'aimerais aussi la rendre executable pour Windows.
J'ai aussi fais quelques recherches sur le forum, j'ai cru comprendre que je devais en faire un jar. Comme dans Export il y a aussi cette option, j'ai tenté le truc, mais alors là, ça ne marche absoluement pas (testé sur le mac). Rien ne s'ouvre... :mouais: 

David


----------



## GrandGibus (8 Septembre 2006)

2 possibilités pour rendre un programme Java exécutable sous Windows: 

*Avant toute chose*, il faut packager ton programme Java dans une archive Java (JAR) et -si besoin- connaître les autres composants Java qu'il utilise.

*La première tâche* consiste à travailler ton archive JAR, et plus précisemment son manifest (META-INF/MANIFEST.MF) de sorte que:

 l'entrée Main-Class pointe sur la classe principale qui contient le main
 l'entrée Classpath déclare l'ensemble des autres .jar dont dépend ton application

Ainsi, un windows avec Java installé et configuré, pourra lancer le programme Java en double-cliquant sur l'archive JAR. Ceci n'est malheureusement pas suffisant par manque d'éducation des utilisateurs windowsiens bien habitués à cliquer sur des .exe. 

D'où *la seconde possibilité* qui consiste à utiliser un module de packaging comme JavaLauncher qui te génèrera un exe (à placer à coté de ton .jar).

Parmi les autres possibilités, on peut toujours citer l'excellent JavaWebstart... 

Mais un lien vaut bien un long discours...


----------



## HommeCocoa (13 Septembre 2006)

Ouarf c'est complexe ça lol,

bon je me lance avec ça:

http://java.sun.com/docs/books/tutorial/deployment/jar/


----------



## HommeCocoa (17 Septembre 2006)

Bon après avoir lu le tutoriel de Sun,

Voilà ce que j'ai fais:

-J'ai créé une simple application Java basée sur une JFrame qui ne possède qu'une classe (Hello.java) et une méthode main.
-J'ai créé un fichier txt MANIFEST.txt en UTF-8 avec un saut de ligne à la fin avec le text suivant

```
Manifest-Version: 1.0
Created-By: 1.4.2 (Ma Société!)
Main-Class: Hello
```

- J'ai entré dans le terminal la commande suivante

```
jar cmf MANIFEST.txt app.jar hello.java
```

Mais le app.jar qui en ressort ne lance rien du tout, je me doute bien que je dois avoir commis pas mal d'erreur, déjà je ne sais pas si on doit donné un fichier java ou un byte code à la commande cmf, j'ai essayé les deux mais ni l'une ni l'autre ne fonctionne...
Ensuite, dans mon manifest, je ne sais pas si je dois nommer la classe main par Hello ou Hello.java...

Merci d'avance pour ceux qui peuvent me sortir de là  
David


----------



## GrandGibus (17 Septembre 2006)

Le fichier manifest doit s'appeler: *MANIFEST.MF* (et pas .txt) .


----------



## HommeCocoa (17 Septembre 2006)

Ha oui! J'ai fais la correction, mais maintenant le terminal me répond ça:


```
at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at sun.tools.jar.Main.run(Main.java:122)
        at sun.tools.jar.Main.main(Main.java:903)
```

à la commande


```
jar cmf MANIFEST.MF sortie.jar hello.class
```


----------

