Я могу запустить терминал человечности 16.10 формы jmeter как пользователь root. Однако, Если я пытаюсь запустить jmeter использование некорневого пользователя путем выполнения той же команды как в испытанном для корня. Я получаю следующую ошибку. Может кто-то помогать мне устранить проблему для существующего некорневого пользователя (Не 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). Но Вы видите, что поддерживаемая версия 8 JAVA уже настроена в альтернативах
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 с более новой версией Java JRE или указать целевой параметр к компилятору Java, чтобы дать компилятору команду создавать код, совместимый с более ранними версиями Java.
Существует несколько способов разрешить это, это, кажется, сводится к тому, хотите ли Вы приблизиться к нему путем обеспечения, чтобы код был выполнен правильным JRE или обеспечив, чтобы код был совместим с в настоящее время используемым JRE.
Для первого одно решение в качестве примера состоит в том, чтобы изменить символьную ссылку (/etc/alternatives/java->/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java) к версии, используемой для компиляции.
Для последнего решение состоит в том, чтобы генерировать новые файлы класса, совместимые с более ранней версией среды выполнения Java, который Вы пытаетесь использовать путем Использования опций Кросс-компиляции. Например, для генерации файлов класса, совместимых с Java 1.4, используйте следующую командную строку:
javac - будьте нацелены на 1.4 HelloWorld.java
Конкретно говорить:
Прокручиваете ли Вы свое собственное или используете предварительно созданный двоичный файл Jmeter, загруженного отсюда, важно проверить целостность.]
Обратите внимание, что Jmeter 3.1 Требует Java 7 или позже таким образом, он должен работать с Вашим 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/