Executer un script spécial

Résolu

Bonjour,

J'aimerais exécuter un programme qui permet de convertir des fichiers grib2 en json. Le problème c'est que je ne sais pas comment m'y prendre.

J'ai essayé de suivre ce tutoriel mais je ne sais pas comment faire l'étape finale (faire fonctionner le programme), ce n'est pas clairement indiqué.

https://github.com/cambecc/grib2json

J'ai obtenu un dossier extrait avec les fichiers de la bibliothèque dans mon répertoire home sur ubuntu wsl (si vous avez une solution qui marche sur Windows pur, je prends aussi).

J'ai bien configuré la variable JAVA_HOME:

J'ai essayé de faire ça dans l'invité de commande Ubuntu WSL:

linux-wsl@DESKTOP-51TJJAF:~$ grib2json --help
grib2json: command not found
linux-wsl@DESKTOP-51TJJAF:~$ cd weacast-grib2json/
linux-wsl@DESKTOP-51TJJAF:~/weacast-grib2json$ grib2json --help
grib2json: command not found
linux-wsl@DESKTOP-51TJJAF:~/weacast-grib2json$ cd bin/
linux-wsl@DESKTOP-51TJJAF:~/weacast-grib2json/bin$ grib2json --help
grib2json: command not found
linux-wsl@DESKTOP-51TJJAF:~/weacast-grib2json/bin$

Comment peut on faire fonctionner ce genre de programmes sur un ordinateur ?

1 réponse

  1. Modérateur

    Bonjour,

    Windows ou Ubuntu peu importe, tu peux tout faire n'importe où. Moi j'ai testé sous Windows.

    Mais avant de pouvoir exécuter ton projet, il faut le compiler. Donc la variable JAVA_HOME où tu déclares une JRE n'est pas suffisant, pour compiler il te faut un JDK.

    https://www.oracle.com/fr/java/technologies/downloads/

    De plus, la documentation indiques qu'il faut faire un mvn package, ce qui implique d'installer aussi Maven.

    https://maven.apache.org/download.cgi

    Enfin, les variables JAVA_HOME\bin et MAVEN_HOME\bin doivent être rajoutées dans la variable Path

    Tu pourras tester que ton installation est bonne en tapant la commande mvn --version

    Ensuite, tu fais un mvn package en ligne de commandes depuis l'emplacement où se trouve le fichier pom.xml du projet cloné. Cela va créer un répertoire target avec un fichier tar.gz dedans.

    Tu peux décompresser ce tar.gz n'importe où et utiliser le fichier bin/grib2json qui est dedans.


    1. Bonjour et merci pour ta réponse.

      J'ai installé apache-maven-3.8.6-src.zip et le JDK x64 Installer(.exe).

      Mais je n'ai pas bien compris comment/où déclarer les variables.

      J'ai suivi le début de cette vidéo pour les variables JAVA_HOME et MAVEN_HOME.

      https://www.youtube.com/watch?v=ZDxfwRWXwwE

      Mais cela ne semble pas bien marcher:

      C:\Users\DELL>mvn --version
      Error: -classpath requires class path specification

      Qu'est ce qui ne va pas à ton avis ?

    2. Modérateur
      @Leg2027

      Bonjour,

      Il ne fallait pas télécharger les sources de Maven mais l'exécutable apache-maven-3.8.6-bin.zip

      Remarque : je te conseille de le décompresser dans C:\Program Files, plutôt que dans Download

      De plus, tu devrais supprimer les deux premières lignes de tes variables d'environnement (javapath), ça fait doublon avec le JDK, et en plus comme elles sont tout en haut elles vont être pris en priorité (ça peut donc entraîner des conflits de version)

    3. @KX

      Bonjour,
      J'ai suivi ce que tu m'as dit de faire mais ça ne marche toujours pas.

      C:\Users\DELL>java --version
      java 19.0.1 2022-10-18
      Java(TM) SE Runtime Environment (build 19.0.1+10-21)
      Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)
      
      C:\Users\DELL>mvn --version
      Error: -classpath requires class path specification
    4. Modérateur
      @Leg2027

      Normalement, ça devrait fonctionner, mais il se peut que le reste de la config pose problème.

      Tu peux faire la commande suivante, qui t'indiquera où est installé Maven :

      where mvn

      Si tu as plusieurs répertoires différents qui sont listés, c'est que tu as une config en double (src + bin ?)

      Ici tu nous montres les variables système, mais en plus il y a les variables d'environnements de chaque compte (qui sont prioritaires sur les variables systèmes), à voir s'il n'y a pas une surcharge qui pose problème.

      Personnellement je préfère mettre JAVA_HOME et MAVEN_HOME tout en haut du Path (avec le bouton "déplacer vers le haut"), comme ça elles sont considérées en priorité, peu importe ce qu'il y a après.

      Remarque : après avoir mis à jour des variables d'environnements il faut ouvrir une nouvelle invite de commandes pour que les changements soient pris en compte (sur des forums certains disent devoir redémarrer le PC, je ne vois pas pourquoi, mais ça ne coûte rien d'essayer).

    5. @KX

      Merci beaucoup, ça fonctionne !

      J'ai réussi à produire un fichier json avec cette bibliothèque.

      J'ai seulement mis JAVA_HOME et MAVEN_HOME en haut et apparemment ça a tout changé.

      C:\>mvn --version
      Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
      Maven home: C:\Program Files\apache-maven-3.8.6-bin\apache-maven-3.8.6
      Java version: 19.0.1, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-19
      Default locale: fr_FR, platform encoding: UTF-8
      OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
      
      C:\>java -version
      java version "19.0.1" 2022-10-18
      Java(TM) SE Runtime Environment (build 19.0.1+10-21)
      Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)
      
      C:\>where mvn
      C:\Program Files\apache-maven-3.8.6-bin\apache-maven-3.8.6\bin\mvn
      C:\Program Files\apache-maven-3.8.6-bin\apache-maven-3.8.6\bin\mvn.cmd
      
      C:\>

      Par contre ça ne fonctionne pas avec le terminal Ubuntu wsl:

      linux-wsl@DESKTOP-51TJJAF:~/weacast-grib2json$ java --version
      
      Command 'java' not found, but can be installed with:
      
      sudo apt install openjdk-11-jre-headless  # version 11.0.16+8-0ubuntu1~20.04, or
      sudo apt install default-jre              # version 2:1.11-72
      sudo apt install openjdk-16-jre-headless  # version 16.0.1+9-1~20.04
      sudo apt install openjdk-17-jre-headless  # version 17.0.4+8-1~20.04
      sudo apt install openjdk-8-jre-headless   # version 8u342-b07-0ubuntu1~20.04
      sudo apt install openjdk-13-jre-headless  # version 13.0.7+5-0ubuntu1~20.04
      
      linux-wsl@DESKTOP-51TJJAF:~/weacast-grib2json$ mvn --version
      The JAVA_HOME environment variable is not defined correctly,
      this environment variable is needed to run this program.

      Je suppose qu'il ne fonctionne pas avec les variables définies sur Windows. Ce n'est pas très important de pouvoir le faire sous Ubuntu wsl mais si c'est simple autant le faire.

      Est ce ça les variables de "compte" ?

      En tout cas merci beaucoup pour ton aide, je n'aurai jamais réussi sans.