Почему эта программа вызывает ошибку во время выполнения? - PullRequest
0 голосов
/ 12 июля 2011
class Test {
    public static void main(String args[])
    {
        Boolean expr = true;
        if (expr)
        {
            System.out.println("true");
        }
        else
        {
            System.out.println("false");
        }
    }
}

РЕДАКТИРОВАТЬ:
ошибка java.lang.UnsupportedClassVersionError

Ответы [ 6 ]

4 голосов
/ 12 июля 2011

Static должно быть в нижнем регистре: static.

2 голосов
/ 12 июля 2011

Проверьте эту ссылку

java.lang.UnsupportedClassVersionError: почему оно выбрасывается и как решить?

Как решить UnsupportedClassVersionError?

Каждый раз, когда вы сталкиваетесь с этой ошибкой, проверьте, не используете ли вы ранее версия JVM для выполнения файла класса, чем соответствующий версия компилятора, которую вы использовали для компиляции исходного кода. Пример показанный здесь был скомпилирован с использованием компилятора Java 5.0, но когда я пытался запустить с помощью JVM 1.4, я получил вышеуказанную ошибку. Мне просто нужно было переключиться либо до версии 5.0 JVM или выше ИЛИ необходимо переключиться на Java Компилятор JDK 1.4 или ниже (вам, конечно, нужно убедиться, что Исходный код совместим с соответствующей версией в противном случае вы начнете получать другие ошибки компилятора).

Более высокая версия JVM не вызывает проблем в большинстве случаев, если только формат файла класса довольно старый (и, следовательно, не лежит в поддерживаемый диапазон, указанный Sun для этой конкретной версии JVM ... как обсуждалось выше). Но всегда полезно иметь Компилятор и JVM той же версии.

1 голос
/ 12 июля 2011

Я думаю, что вы компилируете с одной версией Java и работаете с другой. Чтобы быть более понятным, вы компилируете с более поздней версией Java и работаете с более ранней версией.

Вы компилируете и запускаете этот класс в IDE?

1 голос
/ 12 июля 2011

Этот код (при использовании JDK 5 и более поздних версий из-за автобоксирования / распаковки) работает без каких-либо RuntimeException и будет отображать true на консоли.

1 голос
/ 12 июля 2011

static должно быть в нижнем регистре, и я считаю, что вам нужно, чтобы он был публичным классом. Кроме того, почему вы используете Boolean вместо Boolean, типы оболочки здесь не нужны.

1 голос
/ 12 июля 2011

Это не ошибка времени выполнения. Это не компилируется.

Используйте static (строчные буквы) вместо Static.

...