Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[jRuby]problème de CLASSPATH

3 réponses
Avatar
unbewusst.sein
désolé de poser une question si basique à propos de CLASSPATH.
aujourd'hui j'ai changé de version (jRuby-1.1.RC3 -> jRuby-1.1.3)

et un script très simple de connection à une base de donnée, ne marche
plus il me donne "ClassNotFoundException".

donc, bien sûr j'ai investigué du côté du CLASSPATH mais je ne vois pas
ce qui cloche...

le script bash "jruby" chargé de lancer java me donne comme valeur de
l'argument "--classpath" :

From jruby : -classpath =
/opt/jruby/lib/bsf.jar:/opt/jruby/lib/jruby.jar:/opt/jruby/lib/profile.j
ar:.:/opt/jruby-1.1.3/lib/ruby/gems/1.8/gems/jdbc-sqlite3-3.5.8/lib/sqli
te-3.5.8.jar:/opt/jruby-1.1.3/lib/ruby/gems/1.8/gems/jdbc-mysql-5.0.4/li
b/mysql-connector-java-5.0.4-bin.jar

(j'ai ajouté un echo dans le script bash)

donc, j'ai bien le jar "sqlite-3.5.8.jar" avec le bon PATH...

ensuite, à l'intérieur de mon script, je "print" deux variables
d'environement :

ENV['JAVA_HOME'] =
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
ENV['CLASSPATH'] =
.:/opt/jruby-1.1.3/lib/ruby/gems/1.8/gems/jdbc-sqlite3-3.5.8/lib/sqlite-
3.5.8.jar:/opt/jruby-1.1.3/lib/ruby/gems/1.8/gems/jdbc-mysql-5.0.4/lib/m
ysql-connector-java-5.0.4-bin.jar

ça me semble correct, c'est sans doute pourquoi je patauge...

le script lui-même :

require 'java'
require 'rubygems'
require 'jdbc/sqlite3'
module JavaLang
include_package "java.lang"
end

module JavaSql
include_package 'java.sql'
end

puts "ENV['JAVA_HOME'] = #{ENV['JAVA_HOME']}"
puts "ENV['CLASSPATH'] = #{ENV['CLASSPATH']}"

begin
JavaLang::Class.forName("org.sqlite.JDBC").newInstance
[...]
rescue JavaLang::ClassNotFoundException
puts "ClassNotFoundException"
rescue JavaSql::SQLException
puts "SQLException"
end

je sèche, et ne vois pas de typo...
--
Une Bévue

3 réponses

Avatar
Emmanuel Bourg
Qu'elle est la classe signalée manquante par la ClassNotFoundException ?
Avatar
unbewusst.sein
Une Bévue wrote:


ça me semble correct, c'est sans doute pourquoi je patauge...



comme je ne trouvais pas...
... je suis revenu à la version précédente de jruby (1.1.RC3) et là ça
roule...

--
Une Bévue
Avatar
unbewusst.sein
Emmanuel Bourg wrote:

Qu'elle est la classe signalée manquante par la ClassNotFoundException ?



org.sqlite.JDBC

mais bon, apparemment, c'est un pb spécifique à jRuby, pas à java.
si je me souviens bien ça marchait avec jRuby_1.1.RC3 et ça ne marche
plus avec jRuby_1.1.3...
--
Une Bévue