Java dans Ruby :

Bonjour,

Je cherche à intégrer un programme Java dans Ruby. J’ai trouvé ce lien
(Marginally Interesting: Java Integration in JRuby)qui
permet d’inclure les bibliothèques…

Concernant le reste du code, comment doit-on procéder ? Il faut
l’entourer de balises spéciales pour signifier à ruby que c’est du java
? Existe t-il un bon tutoriel pour faire cela ?

merci

Bonjour,

J’aimerais d’abord m’assurer que tu comprend bien que c’est une faculté
réservée à JRuby, il te faut donc utiliser le compilateur JRuby (qui te
produit du bytecode Java, à exécuter avec une JRE). JRuby est un bon
projet,
actif et pas trop mal conçu.

Pour l’aborder, je te propose de te référer au tutoriels officiels:

http://jruby.codehaus.org/The+JRuby+Tutorial+Part+1+-+Getting+Started

HTH.

2009/8/18 ben ******* [email protected]

Salut,

si tu ne veux pas passer par jRuby tu peux regarder du côté d’EJB :
http://rjb.rubyforge.org/

Voici deux exemples d’utilisation :

http://greg.rubyfr.net/pub/?p=519
http://greg.rubyfr.net/pub/?p=525

Greg

Le 18 août 2009 09:56, ook? ook![email protected] a écrit :

Par contre, en ce qui concerne l’installation du paquet rjb, j’obtiens
toujours le message d’erreur suivant lors de son installation (meme en
précisant le JAVA_HOME en option) :

c:/ruby/bin/ruby.exe extconf.rb
checking for jni.h… no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Quelles sont ces bibliothèques à ajouter ?

Merci beaucoup pour ces infos.

Vu que tu as ceci comme message :

c:/ruby/bin/ruby.exe extconf.rb
checking for jni.h… no

Je pense que tu n’as pas de JDK installé, mais probablement seulement un
JRE…

Greg

Le 18 août 2009 11:55, ook? ook![email protected] a écrit :

Regarde ton mkmf.log :slight_smile:

2009/8/18 ben ******* [email protected]

ook? ook! wrote:

Regarde ton mkmf.log :slight_smile:

2009/8/18 ben ******* [email protected]

Excuse ma “blonditude”, je suis surement très bête mais je ne trouve pas
le fichier log :blush:

Je pense que tu n’as pas de JDK install�, mais probablement seulement un
JRE…
:
Si si, j’ai le jdk => C:\Program Files\Java\jdk1.6.0_13, je cherche…

Regarde ton mkmf.log :slight_smile:

have_header: checking for jni.h… -------------------- no

“cl -nologo -E -I. -Ic:/ruby/lib/ruby/1.8/i386-mswin32 -I. -IC:\Program
Files\Java\jdk1.6.0_13\include -IC:\Program
Files\Java\jdk1.6.0_13\include\win32 -MD -Zi -O2b2xg- -G6 -IC:\Program
Files\Java\jdk1.6.0_13\include -IC:\Program
Files\Java\jdk1.6.0_13\include\win32 /W3 conftest.c -P”
checked program was:
/* begin /
1: #include <jni.h>
/
end */


Tu devrais tenter de protéger tes chaines avec espaces en les mettatn
entre
double quote (je parle pour les path contenant Program Files) autre
solution: install le jdk dans un chemin sans espace.

2009/8/18 ben ******* [email protected]

OK merci des conseils. J’ai choisi d’utiliser Jruby.

Par contre, j’essaye de convertir cette ligne de code Java en Ruby et
impossible d’y arriver.

KeyStore.PrivateKeyEntry data = (KeyStore.PrivateKeyEntry)
keystore.getEntry(“mykey”, new
KeyStore.PasswordProtection(“mypassword”.toCharArray()));

motdepasse = JString.new(“mypkey”).toCharArray

essai = KeyStore.PasswordProtection(motdepasse)
dataIn = keystore.getEntry(“mykey”,essai)
data = KeyStore.PrivateKeyEntry.new
data = dataIn ;

J’obtiens toujours le message suivant :

undefined method `PasswordProtection’ for
Java::JavaSecurity::KeyStore:Class (NoMethodError)

http://java.sun.com/j2se/1.5.0/docs/api/java/security/KeyStore.PasswordProtection.html