Migration de Perl TK => Java
Fermé
JamieMacUloth
Messages postés
43
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
6 juin 2022
-
2 juin 2018 à 21:14
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 4 juin 2018 à 12:37
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 4 juin 2018 à 12:37
A voir également:
- Migration de Perl TK => Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java itel touche ✓ - Forum Logiciels
- Java bible - Forum Téléchargement
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
4 juin 2018 à 12:37
4 juin 2018 à 12:37
Salut JamieMacUloth,
La partie interface utilisateur gérée par Tk est spécifique à la plateforme (en fait, une installation Perl avec Tk dessus utilisera une version de Tk comprenant du code C compilé pour la plateforme concernée : Windows, Linux,...).
Si tu crées des packages d'installation tu dois créer des packages pour chaque système d'exploitation. Tu peux faire cela avec PAR::Packer : https://metacpan.org/pod/distribution/PAR-Packer/lib/PAR/Packer.pm qui te permet de packager tous les éléments nécessaires en un exécutable, qu'il soit pour Windows ou Linux (selon l'environnement dont tu te sert pour lancer PAR::Packer et ses outils.
on en parle là : https://djibril.developpez.com/tutoriels/perl/creer-executable-sources-perl/#LII-D
Il y a d'autres options pour faciliter la création d'environnements d'exécution Perl comme Carton : https://metacpan.org/pod/release/MIYAGAWA/Carton-v1.0.33/lib/Carton.pm qui nécessitera par contre que l'utilisateur dispose d'un Perl de base installé (Carton gérant la mise en oeuvre des dépendances).
Tu peux aussi créer des containers Docker. Là aussi, tu les créeras pour les différents environnements cible.
Tu auras le même problème avec Python qu'avec Perl, qui utilise Tk aussi. Il te faudra un environnement Python particulier pour chaque système d'exploitation.
Tu ne peux pas "résoudre" le problème en "incluant" ton programme Perl/Tk dans un programme Java si ce programme Java se contente de lancer l'interpréteur Perl, car lui même aura besoin de son environnement.
D'une certaines façon Java fonctionne un peu pareil. Pour faire fonctionner le programme Java, tu as besoin d'une machine virtuelle installée, particulière à ton système d'exploitation, avec laquelle l'interface utilisateur (entre autres choses) peut être gérée.
Il existe des modules disponibles sur CPAN permettant d'exécuter du code Perl au sein de Java, procédant de différentes façons :
https://metacpan.org/pod/release/ETJ/Inline-Java-0.66/lib/Inline/Java.pod (avec une installation locale)
https://metacpan.org/pod/release/MTSHOMSKY/Alien-Jerl-1.03/lib/Alien/Jerl.pm (sans installation locale, Perl étant virtualisé dans la JVM, mais sans autres modules que les Core Modules)
Je n'ai jamais utilisé ce type de choses, mais cela pourrait te permettre de reprendre ton code Perl sans avoir à tout redévelopper pour tout ce qui relève de la logique du programme, et de laisser Java gérer l'interface graphique.
Cela me semble moins compliqué de packager avec PAR::Packer ou Carton.
Dal
La partie interface utilisateur gérée par Tk est spécifique à la plateforme (en fait, une installation Perl avec Tk dessus utilisera une version de Tk comprenant du code C compilé pour la plateforme concernée : Windows, Linux,...).
Si tu crées des packages d'installation tu dois créer des packages pour chaque système d'exploitation. Tu peux faire cela avec PAR::Packer : https://metacpan.org/pod/distribution/PAR-Packer/lib/PAR/Packer.pm qui te permet de packager tous les éléments nécessaires en un exécutable, qu'il soit pour Windows ou Linux (selon l'environnement dont tu te sert pour lancer PAR::Packer et ses outils.
on en parle là : https://djibril.developpez.com/tutoriels/perl/creer-executable-sources-perl/#LII-D
Il y a d'autres options pour faciliter la création d'environnements d'exécution Perl comme Carton : https://metacpan.org/pod/release/MIYAGAWA/Carton-v1.0.33/lib/Carton.pm qui nécessitera par contre que l'utilisateur dispose d'un Perl de base installé (Carton gérant la mise en oeuvre des dépendances).
Tu peux aussi créer des containers Docker. Là aussi, tu les créeras pour les différents environnements cible.
Tu auras le même problème avec Python qu'avec Perl, qui utilise Tk aussi. Il te faudra un environnement Python particulier pour chaque système d'exploitation.
Tu ne peux pas "résoudre" le problème en "incluant" ton programme Perl/Tk dans un programme Java si ce programme Java se contente de lancer l'interpréteur Perl, car lui même aura besoin de son environnement.
D'une certaines façon Java fonctionne un peu pareil. Pour faire fonctionner le programme Java, tu as besoin d'une machine virtuelle installée, particulière à ton système d'exploitation, avec laquelle l'interface utilisateur (entre autres choses) peut être gérée.
Il existe des modules disponibles sur CPAN permettant d'exécuter du code Perl au sein de Java, procédant de différentes façons :
https://metacpan.org/pod/release/ETJ/Inline-Java-0.66/lib/Inline/Java.pod (avec une installation locale)
https://metacpan.org/pod/release/MTSHOMSKY/Alien-Jerl-1.03/lib/Alien/Jerl.pm (sans installation locale, Perl étant virtualisé dans la JVM, mais sans autres modules que les Core Modules)
Je n'ai jamais utilisé ce type de choses, mais cela pourrait te permettre de reprendre ton code Perl sans avoir à tout redévelopper pour tout ce qui relève de la logique du programme, et de laisser Java gérer l'interface graphique.
Cela me semble moins compliqué de packager avec PAR::Packer ou Carton.
Dal