Эта ошибка означает, что вы пытаетесь загрузить файл класса «Java», который был скомпилирован с более новой версией Java, чем вы установили.
Например, ваш файл .class
мог быть скомпилирован для JDK 7, и вы пытаетесь запустить его с помощью JDK 6.
Таким образом, решение будет либо:
Для разработчиков это может произойти, если другой разработчик проверяет файл .class, и у них есть более новая версия java, чем у вас есть.
-eq
- оператор сравнения оболочки для сравнения целых чисел. Для сравнения строк вам необходимо использовать =
.
У меня была такая же проблема, сделайте это
if [ 'xyz' = 'abc' ];
then
echo "match"
fi
Обратите внимание на пробелы. Важно, чтобы вы использовали пробелы в этом случае после и перед знаком =
.
Проверьте « Другие операторы сравнения ».
-eq
используется для сравнения целых чисел. Вместо этого используйте =
.
eq используется для сравнения целых чисел, используя вместо этого равный '=', например:
if [ 'AAA' = 'ABC' ];
then
echo "the same"
else
echo "not the same"
fi
удачи
-eq
- оператор математического сравнения. Я никогда не использовал его для сравнения строк, полагаясь на ==
и !=
для сравнения.
if [ 'XYZ' == 'ABC' ]; then # Double equal to will work in Linux but not on HPUX boxes it should be if [ 'XYZ' = 'ABC' ] which will work on both
echo "Match"
else
echo "No Match"
fi
==
не работает на каждой оболочке. =
является правильным оператором для сравнения строк, а ==
иногда является синонимом.
– Omer Dagan
8 March 2015 в 13:26
Вы должны использовать оператор =
для сравнения строк:
Sourcesystem="ABC"
if [ "$Sourcesystem" = "XYZ" ]; then
echo "Sourcesystem Matched"
else
echo "Sourcesystem is NOT Matched $Sourcesystem"
fi;
man test
говорит, что вы используете -z
для соответствия пустым строкам.
Из 4 оболочек, которые я тестировал, ABC -eq XYZ
оценивает значение true в test
встроенном для zsh
и ksh
. Выражение принимает значение false в /usr/bin/test
и встроенные значения для dash
и bash
. В ksh
и zsh
строки преобразуются в числовые значения и равны, так как они оба равны 0. IMO, поведение встроенных функций для ksh
и zsh
неверно, но спецификация для test
на этом двусмысленно.
==
. Он действителен только в ограниченном наборе оболочек и будет производить неуказанное поведение. – William Pursell 1 June 2012 в 15:11