[résolu] linux: script pour ouvrir un fichier.pde avec arduino

Bonjour!!
Comme l'indique le titre j'essaie de me faire un petit script bash pour lancer plusieurs programmes en même temps (Processing, Arduino et quelques fichiers textes).

Je ne parviens pas à ouvrir mon fichier .pde avec Arduino.
La commande suivante m'ouvre Arduino sans ouvrir le fichier:

arduino [chemin]/fichier.pde

Alors que ça marche très bien avec les .pde de Processing.

Une idée?

Yep!

Quand tu regardes le contenu de /usr/bin/arduino :

#!/bin/sh
 
APPDIR=/usr/share/arduino

cd $APPDIR
 
for LIB in \
    lib/*.jar \
    ;
do
    CLASSPATH="${CLASSPATH}:${LIB}"
done
export CLASSPATH

LD_LIBRARY_PATH="/usr/lib/jni${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH


java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base

et celui de processing :

#!/bin/sh

...

# Start Processing in the same directory as this script
cd "$APPDIR"
if [ "$1" ]; then
  SKETCH=`readlink -f $1`
else
  SKETCH=
fi
java processing.app.Base "$SKETCH" &

Tu constateras que chacun font appel à java d’une manière un peu différente :wink:

Modifies /usr/bin/arduino comme ceci :

...
if [ "$1" ]; then
  SKETCH=`readlink -f $1`
else
  SKETCH=
fi

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base "$SKETCH" &

$1 défini le premier argument du script en l’occurence l’emplacement et le nom du pde.

@+

Zoroastre.

Merci Zoroastre.

Après avoir fait la modif de ce fichier, j'obtiens ce message :

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base "$SKETCH" &
Exception in thread "main" java.lang.NoClassDefFoundError: processing/app/Base
Caused by: java.lang.ClassNotFoundException: processing.app.Base

  • at java.net.URLClassLoader$1.run(URLClassLoader.java:217)*
  • at java.security.AccessController.doPrivileged(Native Method)*
  • at java.net.URLClassLoader.findClass(URLClassLoader.java:205)*
  • at java.lang.ClassLoader.loadClass(ClassLoader.java:321)*
  • at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)*
  • at java.lang.ClassLoader.loadClass(ClassLoader.java:266)*
    Could not find the main class: processing.app.Base. Program will exit.

Le fichier modifié en question:

#!/bin/sh
 
APPDIR=/usr/share/arduino

cd $APPDIR

if [ "$1" ]; then
  SKETCH=`readlink -f $1`
else
  SKETCH=
fi

Yep!

Je ne vois pas trop ce que tu as fait ???

Tu te places en root et tu édites /usr/bin/arduino avec nano

nano /usr/bin/arduino

et tu modifies comme tel :

#!/bin/sh
 
APPDIR=/usr/share/arduino

cd $APPDIR
 
for LIB in \
    lib/*.jar \
    ;
do
    CLASSPATH="${CLASSPATH}:${LIB}"
done
export CLASSPATH

LD_LIBRARY_PATH="/usr/lib/jni${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH


if [ "$1" ]; then
  SKETCH=`readlink -f $1`
else
  SKETCH=
fi

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel processing.app.Base "$SKETCH" &

Ensuite tu lances avec arduino ~/sketckbook/mon_sketch.pde

...

(j'avais mis des points de suspension :grin: )

@+

Zoroastre.

Ah oui j'avais mal interprété la signification des ... :slight_smile:

Ça marche! Merci beaucoup!
Youp