Rootユーザーとしてjmeterフォームubuntu 16.10ターミナルを起動できます。ただし、rootで試行したのと同じコマンドを実行して、非rootユーザーを使用してjmeterを起動しようとすると、次のエラーが表示されます。誰かが私を既存の非rootユーザー(Sudoユーザーではない)の問題を解決するのを手伝ってもらえますか
user@laptop1:~$jmeter
Java.lang.UnsupportedClassVersionError: com/thoughtworks/xstream/converters/ConversionException : Unsupported major.minor version 52.0
at Java.lang.ClassLoader.defineClass1(Native Method)
at Java.lang.ClassLoader.defineClassCond(ClassLoader.Java:631)
at Java.lang.ClassLoader.defineClass(ClassLoader.Java:615)
at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:141)
at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:283)
at Java.net.URLClassLoader.access$000(URLClassLoader.Java:58)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:197)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:306)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:247)
at Java.lang.Class.getDeclaredConstructors0(Native Method)
at Java.lang.Class.privateGetDeclaredConstructors(Class.Java:2398)
at Java.lang.Class.getConstructor0(Class.Java:2708)
at Java.lang.Class.newInstance0(Class.Java:328)
at Java.lang.Class.newInstance(Class.Java:310)
at org.Apache.jmeter.NewDriver.main(NewDriver.Java:262)
JMeter home directory was detected as: /usr/share/jmeter
このエラーは、サポートされていないJavaバージョンに関連しているようです(サポートされていないmajor.minorバージョン52.0)。ただし、サポートされているJavaバージョン8が代替で既に構成されていることがわかります。
update-alternatives --config Java
There are 3 choices for the alternative Java (providing /usr/bin/Java).
Selection Path Priority Status
-----------------------------------------------------------
0 /usr/lib/jvm/Java-8-Oracle/jre/bin/Java 1081 auto mode
1 /usr/lib/jvm/Java-6-Oracle/jre/bin/Java 2 manual mode
2 /usr/lib/jvm/Java-7-Oracle/jre/bin/Java 1 manual mode
* 3 /usr/lib/jvm/Java-8-Oracle/jre/bin/Java 1081 manual mode
guest@duriel:~$ which Java
/usr/bin/Java
$ ls -la /usr/bin/Java
lrwxrwxrwx 1 root root 22 Nov 27 2015 /usr/bin/Java -> /etc/alternatives/Java
$ ls -la /etc/alternatives/Java
lrwxrwxrwx 1 root root 46 Feb 9 09:43 /etc/alternatives/Java -> /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java
$ ls -la /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java
-rwxr-xr-x 1 root root 6456 Jan 24 14:22 /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java
$ update-alternatives --config Java
There are 2 choices for the alternative Java (providing /usr/bin/Java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java 1081 auto mode
1 /usr/lib/jvm/Java-7-openjdk-AMD64/jre/bin/Java 1071 manual mode
2 /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java 1081 manual mode
これはテストの結果ではなく、単に調査であることに注意してください。この答えに対する建設的な批判は、テスト済みのソリューションと同様に歓迎されます。
一般的に言えば:
このエラーは、コンパイル時に使用されたJava(JDK)のバージョンと、実行時または複数のバージョンが同時にインストールされたときのJavaのバージョンの不一致が原因で発生するようですここに該当するようです)。
コンパイラのバージョンを確認して比較できます
javac -version
とランタイム
Java -version
実際の問題を修正するには、新しいバージョンのJava JREでJavaコードを実行するか、Javaコンパイラにターゲットパラメータを指定して指示するようにしてください。以前のJavaバージョンと互換性のあるコードを作成するコンパイラ。
これを解決する方法はいくつかありますが、適切なJREでコードが実行されるようにするか、現在使用されているJREと互換性があるようにすることでアプローチするかどうかに要約できます。
前者の場合、解決策の1つの例は、シンボリックリンク(/ etc/alternatives/Java->/usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java)をコンパイルに使用されるバージョンに変更することです。
後者の場合、解決策は、クロスコンパイルオプションを使用して、使用しようとしているJavaの以前のランタイムバージョンと互換性のある新しいクラスファイルを生成することです。たとえば、Java 1.4と互換性のあるクラスファイルを生成するには、次のコマンドラインを使用します。
javac -target 1.4 HelloWorld.Java
具体的には:
独自に展開する場合でも、 here からダウンロードしたビルド済みのJmeterバイナリを使用する場合でも、 整合性を検証する ]が重要です。
Jmeter 3.1はJava 7以降を必要とするため、shouldはJava 8で動作しますが、 MAC OSXを実行していない Java 7で試さない理由
別の可能な解決策は、Java_HOME環境変数を修正することです。
と
export Java_HOME=jdk-install-dir
export PATH=$Java_HOME/bin:$PATH
ソース:
http://docs.Oracle.com/javase/7/docs/technotes/tools/windows/javac.html
http://www.manpagez.com/man/1/javac/
http://jmeter.Apache.org/usermanual/get-started.html#classpath
https://jmeter.Apache.org/download_jmeter.cgi
https://jmeter.Apache.org/changes.html
https://docs.Oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/