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.
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.
Admettons qu'il pourrait y avoir une solution...
Ce serait XXXX fois plus rapide de réécrire cette UNIQUE pauvre classe java en c#...
Je veux simplifier en parlant de classe java.
Bref il est question d'utiliser un .jar dépiis C#.
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#...
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
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
Merci, je vais regarder ça.
Mais mon pb n'est pas encore résolu.
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
Si tu es aussi interé, regardes aussi ce que neptune nous conseille ( Plus de précision).
Je me convains de plus en plus car :
Regardons voir ...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.
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.
C# n'a rien avoir COM+... COM+ est une vieille technologie d'ailleurs sans rapport aucun avec EJB...Envoyé par zsoh
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...
Je parle COM+ et EJB car tous sont des composants logiciels ayant plus ou moins des concepts similaires.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.
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.
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.
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...Bon et l'inverse. Comment appeler une dll dépuis un programme Java ?
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Partager