事象
Linux環境にてjmeterのパスを通すも以下のようにエラーとなる。
# jmeter --version java.lang.Throwable: Could not access /usr/local/lib/ext at org.apache.jmeter.NewDriver.<clinit>(NewDriver.java:106) java.lang.Throwable: Could not access /usr/local/lib/junit at org.apache.jmeter.NewDriver.<clinit>(NewDriver.java:106) java.lang.ClassNotFoundException: org.apache.jmeter.JMeter at java.net.URLClassLoader.findClass(URLClassLoader.java:610) at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:945) at java.lang.ClassLoader.loadClass(ClassLoader.java:890) at java.lang.ClassLoader.loadClass(ClassLoader.java:873) at org.apache.jmeter.NewDriver.main(NewDriver.java:251) JMeter home directory was detected as: /usr/local
環境情報
- apache-jmeter-5.4.1
- java-1.8.0
- RedHatEnterpriseLinux 7
原因/解決策
apache-jmeter-X/bin配下にある以下コマンドのみを既存の/usr/local/binに配置したため。
実際は以下のような別ファイルをbinからの相対パスで利用するため
# ls apache-jmeter-X/lib/ext/ ApacheJMeter_bolt.jar ApacheJMeter_java.jar ApacheJMeter_mongodb.jar ApacheJMeter_components.jar ApacheJMeter_jdbc.jar ApacheJMeter_native.jar ApacheJMeter_core.jar ApacheJMeter_jms.jar ApacheJMeter_tcp.jar ApacheJMeter_ftp.jar ApacheJMeter_junit.jar readme.txt ApacheJMeter_functions.jar ApacheJMeter_ldap.jar ApacheJMeter_http.jar ApacheJMeter_mail.jar
binのみを移さずにapache-jmeter-Xを配置した上でパスを個別に通す。
以下、補足です。
補足
パスを通すべきなのは以下ファイル群のみなのかと思って
# ls apache-jmeter-X/bin/ ApacheJMeter.jar jaas.conf krb5.conf stoptest.sh BeanShellAssertion.bshrc jmeter log4j2.xml system.properties BeanShellFunction.bshrc jmeter.bat mirror-server templates BeanShellListeners.bshrc jmeter-n.cmd mirror-server.cmd threaddump.cmd BeanShellSampler.bshrc jmeter-n-r.cmd mirror-server.sh threaddump.sh create-rmi-keystore.bat jmeter.properties reportgenerator.properties upgrade.properties create-rmi-keystore.sh jmeter-server report-template user.properties examples jmeter-server.bat saveservice.properties utility.groovy hc.parameters jmeter.sh shutdown.cmd heapdump.cmd jmeter-t.cmd shutdown.sh heapdump.sh jmeterw.cmd stoptest.cmd
以下のように該当ファイルのみ移動しました。
# cp -r apache-jmeter-X/bin/* /usr/local/bin
しかし原因に記載した通り別フォルダにあるファイルも動作前提ということで全ファイルを移動させてパスを通すと以下のように問題なく稼働しました。
# jmeter --version ... java.util.prefs.FileSystemPreferences$1 run INFO: Created user preferences directory. _ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____ / \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \ / _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) | / ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ < /_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 5.4.1 Copyright (c) 1999-2021 The Apache Software Foundation
以上です。