1 votes

L'application de script shell d'automatisation ne fonctionne pas sous 10.13

J'ai créé une application avec Automator pour exécuter Jmeter. Depuis la version 10.13, cette application ne fonctionne plus.

Mon script shell (j'ai placé le répertoire de Jmeter dans le contenu de l'application):

RADIR=`ps x | grep jmeter | grep -v grep | cut -c 28- `
COMMAND="$(dirname "$RADIR")/jmeter/bin/jmeter > /dev/null 2>&1 &"
eval $COMMAND

J'ai vérifié que la commande est correcte. Mais elle ne fonctionne pas en exécutant l'application. Et cela fonctionnait bien avant la version 10.12

J'ai reçu quelques messages dans le journal de la Console. La raison semble être une exception de sécurité. Je ne suis pas sûr enter image description here

Certaines mécanismes de sécurité ont-ils été modifiés? Comment puis-je corriger cela?

Merci

2voto

braders_pwn Points 21

À propos de mon analyse précédente, j'avais totalement tort.

J'ai ignoré une chose importante, la version de Java, pas la version de Mac OS X. J'ai simplement installé JDK 10 en plus de JDK 8 sur mon système. Bien sûr, j'ai défini la variable d'environnement JAVA_HOME pour JDK 8 dans les fichiers .bash_profile et .bashrc. J'ai vérifié la version de Java dans le Terminal, c'est Java 8, tout va bien.

Mais lors du processus d'exécution de l'automator, la version de Java est 10

Changer le script shell pour obtenir le message d'erreur

RADIR=`ps x | grep jmeter | grep -v grep | cut -c 28- `
java -version > ~/log.jmeter 2>&1 &
COMMAND="$(dirname "$RADIR")/jmeter/bin/jmeter >> ~/log.jmeter 2>&1 &"
eval $COMMAND

log.jmeter:

java version "10.0.1" 2018-04-17

Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)

Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

Erreur : La version de Java est trop basse pour exécuter JMeter. Nécessite au moins Java >= 1.8.0.

Quoi!!!! C'est le problème~~~

Changer le script shell pour le corriger :

export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
export PATH=$PATH:$JAVA_HOME/bin
RADIR=`ps x | grep jmeter | grep -v grep | cut -c 28- `
COMMAND="$(dirname "$RADIR")/jmeter/bin/jmeter > /dev/null 2>&1 &"
eval $COMMAND

Cela fonctionne bien.

Donc, il y a deux problèmes dans cette situation :

  1. Jmeter ne prend pas en charge JDK 10 (attendre la mise à jour officielle)
  2. Comment définir correctement la variable d'environnement JAVA_HOME pour l'automator ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X