java - двойная метка

1

Я пытаюсь переместить мое приложение Maven из Eclipse Java EE Luna в IntelliJ Idea 14.0.3.

Когда я пытаюсь построить проект в своей новой Idea IDE, я получаю для этого кода код следующую ошибку:

Ошибка: java: дубликат case label

char c = '-';
int postChar = -1;

switch (c) {
case 'ü': c = 'u'; postChar = 'e';
    break;
case 'ö': c = 'o'; postChar = 'e';
    break;
case 'ä': c = 'a'; postChar = 'e';
    break;
}

Что случилось с этим Кодексом?

С уважением

Теги:
maven
intellij-idea

1 ответ

3
Лучший ответ

Я подозреваю, что это проблема с настройкой кодирования. Попробуйте следующее:

  1. Перейдите к настройке (Ctrl + Alt + S/ ,)> Редактор> Кодировки файлов. Убедитесь, что "Project Encoding" (вверху) установлено в "UTF-8". Вероятно, вы также захотите установить "кодирование IDE" на UTF-8.
    • Вы также можете установить это в меню "Файл/Приложение"> "Другие настройки"> "Параметры по умолчанию", чтобы новые новые проекты по умолчанию были настроены на эти настройки.
  2. В правом нижнем углу строки состояния (нижний правый угол) убедитесь, что кодировка файла - UTF-8. Если нет, измените его:

Изображение 174551

  1. Если вышеупомянутое не решит проблему, перейдите к настройке (Ctrl + Alt + S/ ,)> Build Execution, Deployment> Compiler и в разделе "Дополнительные параметры VM процесса" добавьте -Dfile.encoding=UTF8. Также убедитесь, что "Использовать компилятор" вверху установлен в javac. Если вам нужен альтернативный компилятор, вам, возможно, придется устранить проблему с этим компилятором. Я бы, по крайней мере, попробовал компилятор javac чтобы вы могли окончательно сказать свою проблему с альтернативным компилятором.
    • В качестве альтернативы вы можете установить JAVA_TOOL_OPTIONS system/environment JAVA_TOOL_OPTIONS чтобы она -Dfile.encoding=UTF8 а затем перезапускала IntelliJ IDEA, чтобы она -Dfile.encoding=UTF8 изменение. После этого все команды java и javac будут использовать настройку кодировки файла. См. Сообщение SO Настройка кодировки символов Java по умолчанию? для более подробной информации.
  2. Вышеизложенное должно работать. Если это не так, попробуйте заменить объявления символа на escape-последовательности Unicode в качестве шага устранения неполадок:

    switch (c)
    {
        case '\u00FC':
            c = 'u';
            postChar = 'e';
            break;
        case '\u00F6':
            c = 'o';
            postChar = 'e';
            break;
        case '\u00E4':
            c = 'a';
            postChar = 'e';
            break;
    }
    
  • 0
    ps Кроме того, в своем maven POM убедитесь, что в разделе <properties> вы установили <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню