# Un testeur pour émulateur Java 1.5?



## parabellum (13 Septembre 2006)

Bonjour à tous,

Je développe actuellement un émulateur de console vectrex en java 1.5 + OpenGL.

Les versions Linux et windows sont testées, par contre, je suis dans l'incapacité de tester la version Mac, puisque je n'en possède malheureusement pas (J'ai cru comprendre que pour utiliser un JRE1.5, il faut Mac OS X 10.4 au moins, et manque de bol je n'ai accès qu'à un Mac avec OS X 10.3.9) ...

Je cherche donc une âme charitable qui serait d'accord pour valider le packaging mac (je précise qu'il n'y a rien à installer, il suffit de décompresser l'archive et de lancer le programme).
Ce serais vraiment sympa de pouvoir proposer une version pour cette plateforme!

Pour infos à propos de l'émulateur en question : http://vectrex-emu.blogspot.com

Merci d'avance!


----------



## GrandGibus (13 Septembre 2006)

Hello et bienvenue sur macgé :coucou,

J'ai téléchargé le packaging nix. Ma config est la suivante: 
AluBook 1.5 GHz PowerPC G4
1.5 Go DDR SDRAM
Mac os X.4.6  

Le test de version de java fonctionne correctement et _sort proprement_.

Une fois le changement de JVM effectué, voici le message d'erreur au lancement du .sh:

```
gibus:~/Desktop/ParaJVE fred$ ./ParaJVE 
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jawt in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
        at java.lang.Runtime.loadLibrary0(Runtime.java:822)
        at java.lang.System.loadLibrary(System.java:992)
        at ParaJVE.loadJOGL(ParaJVE.java:159)
        at ParaJVE.main(ParaJVE.java:29)
```

Version java: 

```
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)
```


Concernant le packaging, regarde du coté de JarBundler des developer tools (c'est gratuit). Ainsi, tu pourras faire un .app _'comme les autres applis mac'_.

Peut-être devrais-tu également considérer l'utilisation des dmg à la place des zip. 


Projet et initiative très intéressants en tout cas ...


----------



## parabellum (13 Septembre 2006)

Hello GrandGibus,

Merci pour l'accueil chaleureux et les encouragements, je ne m'attendais pas à une réponse si rapidement!


Bon, concernant l'exception que tu as noté, il semble que cela vienne du chargement explicite de la librairie "jawt", qui ne doit donc pas exister sous Mac...

Le code de démarrage a donc été modifié pour prendre cette particularité en compte.
J'en ai profité pour faire un packaging spécial avec les libs de binding OpenGL propre à Mac OS X -- sans elles tu ne serais pas allé beaucoup plus loin de toutes façons 

Donc, avec de la chance, cette version devrait fonctionner beaucoup mieux (si je peux encore abuser et demander un tout petit test ): http://perso.orange.fr/parabellum/bin/ParaJVE/ParaJVE_0.2.1_mac.zip

Merci!


PS. Sympa pour les infos concernant JarBundler et le format DMG, je ne manquerai pas d'y jeter un oeil!


----------



## GrandGibus (13 Septembre 2006)

Bon, ça va mieux: 

j'arrive à lancer l'appli... mais je n'arrive pas à faire fonctionner les touches clavier (sur le premier jeu, le vaisseau devrait tourner sur lui-même avec les touches flêche ?) :rose:.

Autre point, tu peux (sous mac os x) faire bouger la bare de menu de ta frame tout en haut à l'aide d'un -Dapple.laf.useScreenMenuBar=true. Ainsi, cela resemblera encore plus à une appli Mac . Du coup, plus besoin de passer par le F1 aussi pour afficher/masquer.


----------



## parabellum (13 Septembre 2006)

Bonne nouvelle alors! 


Merci pour l'info à propos du "-Dapple.laf.useScreenMenuBar=true", je vais rajouter ça sur la ligne de commande du lanceur.
En espérant que du coup, le F1 ne pose pas problème...

A propos du fichier de lancement, je me posais la question suivante : faut-il mieux ajouter l'extension ".sh" ou pas?
Désolé hein, je connais pas grand chose au monde Mac 


Pour ce qui est des touches c'est étrange. En effet, dans le jeu minestorm, par défaut, les touches flêchées gauche/droite permettent de faire une rotation, et les touches 2,3,4 permettent de se téléporter, d'avancer, et de tirer.

As tu essayé de les reconfigurer (via le menu)? 
Et les autres touches fonctionnent-elles (F1, ENTER, ...)?
Juste une précision : pour que les touches soient interceptées, il faut que la fenêtre principale soit sélectionnée (cliquer sur la surface d'affichage devrait faire l'affaire)


Oups, ça fait un paquet de questions tout ça, désolé...


----------



## GrandGibus (13 Septembre 2006)

parabellum a dit:


> A propos du fichier de lancement, je me posais la question suivante : faut-il mieux ajouter l'extension ".sh" ou pas?



A défaut, tu peux mettre un .sh, mais par défaut, l'extension n'est pas associée au Terminal, ce qui veut dire que l'utilisateur lambda qui n'a pas fait l'association n'obtiendra rien en double-cliquant dessus.

*C'est là qu'intervient JarBundler*. Il te permet d'obtenir un paquet exécutable d'une application Java. En interne, c'est un répertoire qui se termine par .app et qui doit être structuré d'une certaine façon. Tu y mets tes jars, tes libs, il y a un fichier .plist qui te permet de définir la chaine de lancement (les -D....)... et tout ça apparaît comme une simple icone dans le Finder. Toutes les applications mac os x sont packagées ainsi. Pour afficher le contenu d'un paquet sous mac os, il faut faire un clic droit (ou ctrl+clic) et Afficher le contenu du paquet. 



parabellum a dit:


> Pour ce qui est des touches c'est étrange. En effet, dans le jeu minestorm, par défaut, les touches flêchées gauche/droite permettent de faire une rotation, et les touches 2,3,4 permettent de se téléporter, d'avancer, et de tirer.
> As tu essayé de les reconfigurer (via le menu)?
> Et les autres touches fonctionnent-elles (F1, ENTER, ...)?
> Juste une précision : pour que les touches soient interceptées, il faut que la fenêtre
> principale soit sélectionnée (cliquer sur la surface d'affichage devrait faire l'affaire)



Oups, je ne sais pas ce que j'ai fait, mais j'ai du merder qq part.... ça fonctionne correctement maintenant. mais je dois avouer que je n'ai pas fait de réels tests 'étendus'.


----------



## parabellum (13 Septembre 2006)

GrandGibus a dit:


> *C'est là qu'intervient JarBundler*. Il te permet d'obtenir un paquet exécutable d'une application Java. En interne, c'est un répertoire qui se termine par .app et qui doit être structuré d'une certaine façon. Tu y mets tes jars, tes libs, il y a un fichier .plist qui te permet de définir la chaine de lancement (les -D....)...


Peut-on également y mettre fichiers accédés en lecture-écriture (fichier xml de config par exemple) ?
Quoi qu'il en soit, je vais regarder ça de plus près (en espérant pouvoir utilser JarBundler sous windows - mais il me semble avoir vu trainer une tâche ANT du même nom)...



GrandGibus a dit:


> Oups, je ne sais pas ce que j'ai fait, mais j'ai du merder qq part.... ça fonctionne correctement maintenant. mais je dois avouer que je n'ai pas fait de réels tests 'étendus'.


Le fait que le prog démarre et semble fonctionner me suffit déjà largement!

En tout cas, mille fois merci pour tes tests et conseils, ça m'a énormément aidé. 
Grace à toi je vais pouvoir enfin créer une version Mac - un petit "credits" dans le readme mac pour la prochaine version s'impose!


----------



## GrandGibus (13 Septembre 2006)

parabellum a dit:


> Quoi qu'il en soit, je vais regarder ça de plus près (en espérant pouvoir utilser JarBundler sous windows - mais il me semble avoir vu trainer une tâche ANT du même nom)...


Exact, une tache Ant existe. 
Pour ma part, je fais différemment: j'organise dans mon projet la structure obtenue par JarBundler (ce ne sont que des répertoires! et qq fichiers), je supprime ce qui est sensé varier d'un build à l'autre (les .jar) et je reconstruits  avec mes archives au moment du packaging final. Ainsi, mon buid est complètement portable (pas besoin d'extension à Ant). 




parabellum a dit:


> Le fait que le prog démarre et semble fonctionner me suffit déjà largement!


Ca m'étonnait aussi que les touches ne fonctionnaient pas étant donné l'environnement de l'appli... mais sait-on jamais !




parabellum a dit:


> En tout cas, mille fois merci pour tes tests et conseils, ça m'a énormément aidé.
> Grace à toi je vais pouvoir enfin créer une version Mac - un petit "credits" dans le readme mac pour la prochaine version s'impose!


A ce tarif, contacte-moi par mp avec ton adresse mail et je t'entoie un script pour faire le packaging complet en DMG (standard de diffusion mac os) ! (à partir de ce soir, en dehors des horaire de bureau :rateau.


----------



## parabellum (13 Septembre 2006)

GrandGibus a dit:


> A ce tarif, contacte-moi par mp avec ton adresse mail et je t'entoie un script pour faire le packaging complet en DMG (standard de diffusion mac os) ! (à partir de ce soir, en dehors des horaire de bureau :rateau.


Voilà qui est fait!


----------



## tatouille (14 Septembre 2006)

parabellum a dit:


> Voilà qui est fait!




pour CFBundle conceptual

tu trouveras des liens et les fondements  c'est une version déviante


----------



## parabellum (14 Septembre 2006)

tatouille a dit:


> pour CFBundle conceptual
> 
> tu trouveras des liens et les fondements  c'est une version déviante


Merci pour le lien, je regarderai ça à tête reposée...


----------

