Ошибка файла Bad Class при создании с Ant [duplicate]

Как правило, округление выполняется путем масштабирования: round(num / p) * p

/**
 * MidpointRounding away from zero ('arithmetic' rounding)
 * Uses a half-epsilon for correction. (This offsets IEEE-754
 * half-to-even rounding that was applied at the edge cases).
 */
double RoundCorrect(double num, int precision) {
    double c = 0.5 * EPSILON * num;
//  double p = Math.pow(10, precision); //slow
    double p = 1; while (precision--> 0) p *= 10;
    if (num < 0)
        p *= -1;
    return Math.round((num + c) * p) / p;
}

// testing edge cases
RoundCorrect(1.005, 2);   // 1.01 correct
RoundCorrect(2.175, 2);   // 2.18 correct
RoundCorrect(5.015, 2);   // 5.02 correct

RoundCorrect(-1.005, 2);  // -1.01 correct
RoundCorrect(-2.175, 2);  // -2.18 correct
RoundCorrect(-5.015, 2);  // -5.02 correct
36
задан OscarRyz 20 November 2009 в 13:50
поделиться

5 ответов

Библиотека, которую вы используете, была скомпилирована с помощью Java 6

. Ваш компилятор - это Java 5, поэтому он не понимает этот формат.

Чтобы исправить это, вы должны получить 1.5 версии библиотеки или обновить ваш компилятор до 1.6. Я предлагаю позже.

67
ответ дан OscarRyz 22 August 2018 в 19:19
поделиться
  • 1
    Тогда как он работает в затмении? – i2ijeya 19 November 2009 в 21:29
  • 2
    О, это не тайна - корабли с затмением со своим собственным компилятором, поэтому вам даже не нужен jdk. И этот компилятор совместим с Java6 :) – Andreas_D 19 November 2009 в 21:41

Per http://www.jnode.org/node/2140 ...

Представлено Стивеном Кроули в пятницу, 11 / 30/2007 - 07:15.

Я подозреваю, что вы смешиваете код, скомпилированный с разными версиями Java. Class file version 50.0 используется Java 6.0, а 49.0 используется Java 5.0.

Попробуйте сделать «сборку чистой», чтобы избавиться от всех существующих файлов классов, за которой следует регулярная сборка.

JNode разрабатывается только с использованием Java 6.0. В прошлый раз, когда я пытался, он не строился с использованием Java 5.0 (aka 1.5). (Это проблема с программой, которая создает загрузочный образ JNode.)

Попробуйте изменить конструктор в Eclipse. Если вы используете 3.4, это Project - Properties - Java Compiler - Включить специальные настройки проекта - Уровень соответствия компилятора = 1.6 . Вам также потребуется установить JRE 1.6.

3
ответ дан atk 22 August 2018 в 19:19
поделиться
  • 1
    Используя mvn clean, я помог мне узнать файл mvn.bat, который в моем случае устанавливал свою собственную версию JAVA_HOME. – another 23 January 2018 в 09:47

Это означает, что вы скомпилировали этот класс с Java 6 и пытаетесь выполнить с помощью Java 5.

Решение:

Если вы используете ant, выполните ниже шаги по проекту root

  1. ant clean
  2. ant deploy

Если вы используете eclipse, просто очистите рабочую область (удалите файлы классов, которые были скомпилирован с Java6) и снова построить

1
ответ дан Chandrasekhar Rajoli 22 August 2018 в 19:19
поделиться

Проверьте свой путь к классам в eclipse и убедитесь, что его тот же путь к классу, который вы компилируете в командной строке, также проверьте, что ваша библиотека импортирует

1
ответ дан JERiv 22 August 2018 в 19:19
поделиться
  • 1
    Да, я все проверил, все правильно. Но даже я получаю исключение. – i2ijeya 19 November 2009 в 21:28

это может быть в том, что в IDE вы указываете на последнюю версию JDK, но когда вы создаете свою программу за пределами IDE (возможно, с maven), ваша java_home является более старой версией, чем в вашей IDE.

0
ответ дан Luthoz 22 August 2018 в 19:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: