automator shell脚本应用程序在10.13中不起作用


1

我通过automator创建应用程序来运行jmeter。从10.13开始,此应用程序不再起作用。

我的shell脚本(我把jmeter目录放在应用程序内容中):

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

我检查了那个命令是否正确。但它不能通过运行应用程序。它在10.12之前运作良好

我在Console日志中收到了一些消息,原因似乎是安全异常。我不确定 在此输入图像描述

一些安全机制已经改变?怎么解决它?

谢谢


RADIR只会设置jmeter已经运行,你试过硬编码目录jmeter驻留在COMMAND变量中吗?出于故障排除目的,您可以删除重定向到/dev/null> /dev/null 2>&1)并查看记录的消息。
jaume

1
@jaume你给我一个重要的想法。我将COMMAND更改为将输出消息重定向到日志文件。我得到了错误细节。这是Java版本的问题。关于我之前的分析,我完全错了。谢谢。
吉诺

Answers:


2

关于我之前的分析,我完全错了。

我忽略了一个重要的东西,Java版本,而不是mac os x版本。我刚刚安装了jdk 10,我的系统中也有jdk 8。当然我在.bash_profile和.bashrc文件中为jdk 8设置了环境变量JAVA_HOME,我在Terminal中检查了java版本,它是java 8,一切都很好。

但在automator运行过程中,java版本为10

更改shell脚本以获取错误消息

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版“10.0.1”2018-04-17

Java(TM)SE运行时环境18.3(版本10.0.1 + 10)

Java HotSpot(TM)64位服务器VM 18.3(内置10.0.1 + 10,混合模式)

错误:Java版本太低而无法运行JMeter。至少需要Java> = 1.8.0。

什么!!!!那是问题~~~

更改shell脚本以修复它:

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

它运作良好。

所以,这个问题有两个问题:

  1. Jmeter不支持jdk 10(等待官方更新)
  2. 如何为automator正确设置java home环境变量?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.