IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#-Java] Appeler une classe Java dépuis C#


Sujet :

C#

  1. #1
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut [C#-Java] Appeler une classe Java dépuis C#
    Bonjour,
    J'ai une classe java et j'aimerai l'utiliser dépuis C#.
    Je ne sais comment appeler une classe java ou encore comment utiliser une bibliothèque java (.jar) dépuis un programme C#.

    Merci s'il existe une proposition.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Admettons qu'il pourrait y avoir une solution...


    Ce serait XXXX fois plus rapide de réécrire cette UNIQUE pauvre classe java en c#...

  3. #3
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Je veux simplifier en parlant de classe java.
    Bref il est question d'utiliser un .jar dépiis C#.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Java s'exécute sous la machine virtuelle JAVA
    C#, ou tout langage dotNet, compilé én MSIL sous la machine dotNET...

    Rien à voir... Quand on voit combien c'est déjà assez complexe d'exécuté une librairie C++ native en C#...

  5. #5
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Sait-on jamais,
    Quelqu'un peut avoir déja regardé un truc comme ça.
    Même les grands constructeurs n'ont-ils pas encore réalisé des ponts
    C# (COM+) --> Java (EJB) ?

    Bon et l'inverse. Comment appeler une dll dépuis un programme Java ?

    Merci

  6. #6
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Jette un oeil à IKVM (http://www.ikvm.net)

    IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework. It includes the following components:

    A Java Virtual Machine implemented in .NET
    A .NET implementation of the Java class libraries
    Tools that enable Java and .NET interoperability

  7. #7
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Merci, je vais regarder ça.
    Mais mon pb n'est pas encore résolu.

  8. #8
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    c'est pour cela qu'il y a des projets openSource de portage ou de Wrapper
    de librairie C++ ou Java en .Net...

    Si cela etait simple, il n'y aura pas ou peu de portage ou wrapper de telles librairies provenant de monde (de langage) différent !

    Je ne pense pas que la solution existe pour l'instant.. Ce qui est plutot logique

    En .Net, on sait appeler des methodes ou fonctions qui sont dans des .dll windows... maintenant, ton .Jar n'etant pas une dll, il n'expose pas des méthodes "au public", donc, j'ai un très gros doute sur la faisabilité.

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  9. #9
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Si tu es aussi interé, regardes aussi ce que neptune nous conseille ( Plus de précision).
    Je me convains de plus en plus car :
    Use Java libraries in your .NET applications
    IKVM.NET includes ikvmc, a Java bytecode to .NET IL translator. If you have a Java library that you would like to use in a .NET application, run ikvmc -target:library mylib.jar to create mylib.dll.
    Regardons voir ...

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    Tu semble oublier un détail, il s'agit d'une implantation d'une JVM...
    D'un portage des classes de l'API...

    Dans tous les cas le projet n'est pas aussi avancé que java ne l'est. Ainsi il ne faut pas rêver quant à la version de la JVM. Rien ne dit que tu pourra exécuter une classe compilée avec le dernier compilateur (le dernier JSDK donc pour le dernier JRE)
    La bibliothèque des classes également, vu la bibliothèque Java, sans aucun rapports avec celle de .NET... ca doit être pas mal dans le genre, et très incomplet par rapport à l'original.

    En plus ne rêve pas non plus en terme de performances... La jvm est implantée en .NET... en gros tu te retrouve avec DEUX NIVEAUX d'interprétation... super dans le genre performances plombées. Et meme si le code MSIL est converti en natif par le CLR... ca ne règlera pas le probleme car je doute que cette implantation soit capable de générer à son tour du code natif, ou du code .NET et de le passer direct dans la CLR.

    Pour ce qui est de java... JAVA n'est pas fait pour l'interopérabilité mais soit disant la portabilité... on peut pas tout avoir surtout que meme question portabilité, c'est pas gagné. Donc une interaction java/.NET... je suis pas sure que ce soit vraiment possible.
    Citation Envoyé par zsoh
    C# (COM+) --> Java (EJB) ?
    C# n'a rien avoir COM+... COM+ est une vieille technologie d'ailleurs sans rapport aucun avec EJB...
    EJB : Enterprise Java Bean, ce n'est pas Java mais un "framework" sous java, ou de l'utilisation d'outils comme Hibernate/NHibernate.

    Il est assez difficile d'établir des ponts entre choses qui n'ont rien avoir entre elles.
    Et puis il y a l'aspect marketing... Sun et Microsoft sont assez "ennemis" donc ne compte pas sur eux pour faire l'effort de faire des ponts, d'autant que ca n'est pas du tout dans la mentalité de Java qui n'est, je le répete, pas fait pour l'interopérabilité, mais bien la portabilité.
    Donc pour l'instant à part des projets "opensources" et donc non officiels...

  11. #11
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Citation:
    Envoyé par zsoh
    C# (COM+) --> Java (EJB) ?

    C# n'a rien avoir COM+... COM+ est une vieille technologie d'ailleurs sans rapport aucun avec EJB...
    EJB : Enterprise Java Bean, ce n'est pas Java mais un "framework" sous java, ou de l'utilisation d'outils comme Hibernate/NHibernate.
    Je parle COM+ et EJB car tous sont des composants logiciels ayant plus ou moins des concepts similaires.
    Si je développe une dll (un COM+) en C#. Tu penses que c'est quoi (une dll COM+ en C#) ?
    Je n'ai jamais confondu COM+ et EJB, ni die qu'elles ont un rapport. Même chose avec les EJB et Java. Mais on développe les EJB en java.

    Merci.

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Sinon il y a des convertisseurs Java->C#, mais c'est loin d'être parfait, il faut quand même en faire une bonne partie à la main.

    Bon et l'inverse. Comment appeler une dll dépuis un programme Java ?
    Ca pour le coup c'est possible, ça s'appelle JNI (Java Native Interface). Attention, ça marche avec une DLL native, pas avec une DLL .NET...

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/08/2010, 22h50
  2. [JSP / Java] - Appel d'une classe java dans une jsp
    Par Lolie11 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 26/08/2009, 10h04
  3. comment appeler une classe java dans une page jsp?
    Par limalima dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 21/11/2008, 22h59
  4. Appeler une classe java en perl
    Par missllyss dans le forum Langage
    Réponses: 1
    Dernier message: 04/06/2008, 15h35
  5. [2.2.1.1][JavaScript] Appel à une classe java
    Par bert1525 dans le forum BIRT
    Réponses: 2
    Dernier message: 17/12/2007, 09h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo