53 votes

Comment faire pour Cross-Compiler le Code Source Java, JavaScript?

Étant donné un ensemble de code source Java fichiers, comment puis-je compiler dans un ou plusieurs fichiers JavaScript qui peut être utilisé avec des fabriqués à la main JavaScript?

GWT est une option, mais tous les exemples que j'ai vu jusqu'à présent est destiné à la construction de fantaisie sites web. Le cas d'utilisation simple de juste conversion source Java Javascript qui peut être utilisé conjointement avec capitonnage JavaScript n'a pas été bien documenté.

J'ai commencé un fil sur le GWT liste de diffusion sur ce sujet, mais les avis semblent mitigés sur si cela est encore possible.

Une personne a donné une astuce très utile, qui était de vérifier GWT-Exportateur. Le problème est que ni le code source, ni la documentation est facilement disponible, même si il y a ceci et cela.

edit: GWT-Exportateur code source est ici

J'ai aussi vu Java2Script. Mais encore une fois, je n'étais pas en mesure de trouver des exemples de comment résoudre mon cas simple d'utilisation.

Quelle est la meilleure approche à ce problème? Est-il quelque chose de mieux, je suis absent?

12voto

Jacob Mattison Points 32137

Lorsque vous utilisez GWT, vous êtes essentiellement de la conversion de l'INTERFACE utilisateur dans la partie Javascript (et il suppose que vous utilisez les widgets fournis lorsque vous écrivez votre Java). Seulement certains des bibliothèques Java sont accessibles à l'intérieur de Javascript. Typiquement dans une application GWT tout ce qui fait un usage intensif des bibliothèques Java fonctionne sur le côté serveur et se connecter à l'Javascript AJAX (qui GWT gère pour vous). Donc, GWT n'est pas nécessairement la conversion complète de votre application en Javascript (mais il peut, si vous êtes prêt à limiter votre utilisation de bibliothèques Java et certaines fonctionnalités).

En tout cas, si cette approche (l'appel à Java en cours d'exécution sur un serveur à partir de Javascript) fait appel à vous, une option intéressante est la DSR, qui permet essentiellement de votre Javascript pour appeler directement des méthodes dans des classes Java en cours d'exécution sur le serveur (sans avoir à créer un service web ou d'autres frontend). Pas ce que vous avez demandé, je le sais.

Plus pertinemment, il semble comme il y a le code source de l' application d'exemple illustrant l'utilisation de gwt-exportateur.

7voto

arusland Points 78

Vous pouvez également utiliser QWT Il a Java2JavaScript compilateur sur le conseil d'administration.

2voto

bgp Points 1912

Étant donné un ensemble de code source Java fichiers, comment puis-je compiler dans un ou plusieurs fichiers JavaScript qui peut être utilisé avec des fabriqués à la main JavaScript?

Il n'y a pas de corrélation directe entre les deux intégrés dans l'API Java et Java fonctionnalités de la langue, et ceux de JavaScript. De sorte que toute tentative de création d'un "convertisseur" sera incomplète. Fondamental exemple, des classes Java n'ont pas directement JavaScript correspondant de l'idiome.

Si oui ou non une conversion incomplète outil de travail pour votre cas d'utilisation est impossible de le savoir sans le code source.


Cela dit, ma suggestion à la résolution de votre problème serait de la première tentative d'utilisation de GWT: mettre en place un projet de démonstration, la chute dans le source de votre bibliothèque et de l'appeler à partir du JavaScript côté et voir ce que GWT sorties dans c'est .fichier js. D'autres outils suggérés par d'autres affiches ici sont certainement la peine de vérifier ainsi.

Si c'est fructueuse et vous permet de partie de le moyen, grand.

À partir de là, vous aurez besoin/envie de faire le reste de la conversion à la main. Après tout, en supposant que vous voulez que le code fonctionne correctement, un examen manuel serait certainement dans l'ordre. Certains tests unitaires être convertis avec l'idéal serait ainsi.

Vous n'avez pas l'état de la taille de la source de votre projet, mais si elle est petite (disons moins de un millier de lignes de code), même une conversion complète à la main ne devrait pas être très difficile. Si c'est beaucoup plus que cela, je vous suggère d'examiner si vous voulez vraiment que du code JavaScript de toute façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X