[Linux-31] Problème avec Jclic programme en java

Claude Micouin mlnglst at free.fr
Lun 5 Nov 19:32:04 CET 2012


Bonjour.
	J'ai découvert il y a quelques temps un programme éducatif très 
intéressant qui s'appelle Jclic et qui est développé par la Communauté 
Autonome de Catalogne.
http://clic.xtec.cat/en/jclic/
http://doc.ubuntu-fr.org/jclic
http://jclic.clicapplic.net/

C'est ce qu'on appelle un système auteur: il est très facile à utiliser pour 
un utilisateur final (un peu comme un traitement de texte) pour créer des 
exercices éducatifs. De plus, il est multi-plateforme vu qu'il utilise la 
machine virtuelle Java. Donc aucun problème pour passer de Windows, Mac à 
Linux. Voila donc pour le côté pub.

	J'ai cependant un souci pour l'utiliser sur le réseau de l'école où je 
travaille. C'est un réseau local (serveur + clients légers) tournant avec 
Ubuntu Lucid 2.6.32-44-generic (le matériel et la distribution commencent à 
dater un peu). La maintenance, comme tout ce qui est dans l'Éducation 
nationale, il n'y a pour ainsi dire pas. Donc, c'est la case "débrouille-
toi"...
    J'avais installé Jclic il y a quelques temps et un premier problème se 
posait: il était impossible de lancer l'application sur un client 
(l'application fonctionnait bien sur le serveur en revanche). Si je me 
rappelle bien,  le message d'erreur dans la console signalait un problème de 
son.
    J'avais remplacé le fichier /usr/bin/jclic d'origine par un autre trouvé 
sur un forum espagnol. Visiblement, le problème venait de pulseaudio et le 
nouveau script semblait régler le problème.
 
     Mais, il y a un autre problème qui cause un fonctionnemet assez cocasse: 
il est impossible de lancer l'application sur deux (ou +) clients/utilisateurs 
à la fois à partir du navigateur de fichier (nautilus) ou dans un émulateur de 
terminal (jclic /chemin/exercice.jclic.zip) .
    Lorsqu'un utilisateur toto lance l'application en cliquant sur un exercice 
et l'utilisateur suivant titi fait la même manœuvre sur un autre exercice, 
l'exercice démarre, mais sur le compte et donc l'écran de toto ! Même chose si 
tata lance un autre exercice: il s'affichera sur le compte de toto et à la place 
de son propre exercice. Pagaille assurée donc quand ça t'arrive avec la classe 
sur les bras. :-(
    Par contre, tout fonctionne bien si titi et tata lance l'exercice depuis 
Jclic via son propre navigateur (pas très commode à utiliser vu son absence de 
raccourcis). Assez surprenant...
    Je dois avouer que je me casse la tête depuis un moment sur ce problème. 
Si quelqu'un avait une idée pour le résoudre, ça m'arrangerait beaucoup?
Merci.
Claude Micouin

#################################################"
/usr/bin/jclic


#!/bin/sh

# jclicplayer wrapper script
# code for java detection based on tuxguitar code
# but adding detection of alternatives for jclic

if [ -z $JAVA_HOME ] ; then

    ALTERNATIVE=`ls -l /etc/alternatives/java|grep sun`
    if [ -z "$ALTERNATIVE" ]; then
        ALTERNATIVE=`ls -l /etc/alternatives/java|grep openjdk`
    fi
   
    if [ -z "$ALTERNATIVE" ]; then
            t=/usr/lib/jvm/java-1.5.0-sun && test -d $t && JAVA_HOME=$t
            t=/usr/lib/jvm/java-6-sun && test -d $t && JAVA_HOME=$t
            t=/usr/lib/jvm/java-7-icedtea && test -d $t && JAVA_HOME=$t
            JAVA=${JAVA_HOME}/jre/bin/java
    fi
fi

# detect pulseaudio with $DISPLAY and "pactl stat"
REMOTE_DISPLAY=$(echo $DISPLAY| awk -F ":" '{print $1}')
if [ "x${REMOTE_DISPLAY}" != "x" ]; then
    # remote PULSEAUDIO
    if [ -x /usr/bin/padsp ] && [ -x /usr/bin/pactl ] && pactl stat >/dev/null 
2>&1; then
        PULSE_AUDIO="padsp -s $REMOTE_DISPLAY -n JClic -m JClic-stream"
    fi
else
    # local PULSEAUDIO
    if [ -x /usr/bin/padsp ] && [ -x /usr/bin/pactl ] && pactl stat >/dev/null 
2>&1; then
        PULSE_AUDIO="padsp"
    fi
fi


export JAVA=${JAVA:=java}

exec $PULSE_AUDIO $JAVA -jar /usr/share/java/jclic.jar "$@" >/dev/null 2>&1
#################################################"

                           ET

#################################################
/usr/bin/jclic-orig

#!/bin/sh

# jclicplayer wrapper script
# code for java detection based on tuxguitar code
# but adding detection of alternatives for jclic

if [ -z $JAVA_HOME ] ; then

    ALTERNATIVE=`ls -l /etc/alternatives/java|grep sun`
    if [ -z "$ALTERNATIVE" ]; then
        ALTERNATIVE=`ls -l /etc/alternatives/java|grep openjdk`
    fi
   
    if [ -z "$ALTERNATIVE" ]; then
            t=/usr/lib/jvm/java-1.5.0-sun && test -d $t && JAVA_HOME=$t
            t=/usr/lib/jvm/java-6-sun && test -d $t && JAVA_HOME=$t
            t=/usr/lib/jvm/java-7-icedtea && test -d $t && JAVA_HOME=$t
            JAVA=${JAVA_HOME}/jre/bin/java
    fi
fi

REMOTE_DISPLAY=$(echo $DISPLAY| awk -F ":" '{print $1}')
if [ "${REMOTE_DISPLAY}" != "" ]; then
  if [ -x /usr/bin/padsp ]; then
     padsp -s "$REMOTE_DISPLAY" -n JClic -m JClic-stream $aux -cp $CLASSPATH -
jar /usr/share/java/jclic.jar "$@" &>/dev/null
     exit 0
  fi
fi

export JAVA=${JAVA:=java}

PULSE_AUDIO=""
if [ -d /tmp/${USER}-pulse/ ]; then
    PULSE_AUDIO="padsp"
fi

exec $PULSE_AUDIO $JAVA -jar /usr/share/java/jclic.jar "$@" &>/dev/null


#################################################


-- 
Claude Micouin mlnglst at free.fr				http://astuce.linux.free.fr
J'utilise la nouvelle orthographe recommandée par l'Académie française et par 
l'Éducation nationale.			Merci de ne pas me joindre de textes aux 
formats "doc" ou "ppt", mais aux formats «html», «pdf», «rtf» ou «txt».



Plus d'informations sur la liste de diffusion Linux-31