Java — Java. Ошибка компиляции


Ошибка при компиляции java

Perhaps JAVA_HOME does not point to the JDK. It is currently set to «C:\Program Files\Java\jre6»

P.S. Версия вашего jdk может отличатся.

Скопируйте его в ваш java runtime environment:

    2 0 0 — Нейтрально
Статья «Ошибка при компиляции java» содержит 0 комментариев

Вставка изображения

Оставить комментарий

Мнения людей

broker 7 ноября 2020, 15:33

The 17 октября 2020, 21:28

Mrak 13 октября 2020, 13:07

NinjA 2 октября 2020, 06:25

имя 23 августа 2020, 18:48

Slava 16 мая 2020, 12:42

webber 17 января 2020, 16:57

scam 12 января 2020, 09:30

webber 9 января 2020, 11:23

coin 8 мая 2020, 16:16

Сколько онлайн —

Блоги
  • ОС Linux2.34
  • SEO1.21
  • Решение проблем в играх1.21

  • Криптовалюты1.21
  • Сеть1.21
  • Прогноз курса криптовалют1.21
  • Здоровье1.17
  • Игровые обзоры-1.21
  • Плагины-1.21

Здравствуй, дорогой друг!

Вы используете AdBlock и мы Вас понимаем!

Данное расширение действительно очень эффективно и полезно против навязчивой рекламы.

На данном ресурсе отсутствует навязчивая реклама: teaser, popunder, bodyclickunder, sliderbanner и прочий ужас.

Таким образом мы просим не использовать AdBlock на страницах сайта — yatochka.ru.

Реклама помогает нам оплачивать серверную площадку на которой размещен ресурс.

Данное УВЕДОМЛЕНИЕ можно закрыть, но оно всплывёт повторно, если AdBlock будет включен.

Одд JAVA ошибка компиляции?

Мне нужно предварить это с я не разрешается использовать IDE в классе, я должен использовать TextPad для компиляции и запуска. Любая помощь будет принята с благодарностью.

Есть три файла, файл драйвера и два других файла класса. Файл lab4 файл драйвера и файлы класса являются «ЭЛЕМЕНТ» и «NAME».

Я получаю следующие ошибки при компиляции файла драйвера «lab4».

Код для файла «lab4» здесь:

Код для файла «ITEM», который ссылается на ошибку здесь:

Любая помощь будет удивительным!

5 ответов

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

Вы назвали ваш метод getmanName() , Но называется manName() на линии ошибки.

Вы получили простую ошибку опечатки:

Ты хочешь item.getmanName() и нет manName()

manName является атрибутом, вы ссылаетесь его как метод manName()


поскольку manName является private вы должны использовать аксессор вы назвали getmanName()

собственно ссылка дается код будет item.getmanName()

лучше идиоматическое название метода будет getManName() соответствуещий UpperCamelCase именования для Java.

Вы призываете manName(), но ваш метод getmanName()

Не Насколько я могу видеть, нет manName способ в Item класс. Метод геттер называется getmanName . Как правило, существует это правило говоря, что геттер должен начать с самого начала слова и после этого следует поместить имя атрибута класса, который Вы хотите получить значение.

Изменение линии, что дает ошибку компиляции для:

Java — Java. Ошибка компиляции

63332 просмотра

6 ответа

1333 Репутация автора

На этот вопрос уже есть ответ здесь:

Я знаю, что Строка 1 / Строка 2 никогда не будет выполнена. Но все же я не понимаю, почему выдается ошибка времени компиляции. Я получаю сообщение об ошибке «недостижимое утверждение».

Означает ли это, что компилятор проверяет, способен ли он компилироваться для всех веток / строк кода?

Ответы (6)

6 плюса

6727 Репутация автора

Компилятор также может сделать такой вывод и предполагает, что вы делаете ошибку. И да, компилятор Java выполняет довольно много «анализа потоков данных». Наиболее распространенным связанным сообщением является сообщение о переменных, которые не инициализированы. На втором месте, я полагаю, именно этот, о коде, недоступном.

13 плюса

1138996 Репутация автора

Означает ли это, что компилятор проверяет, способен ли он компилироваться для всех веток / строк кода?

Это означает, что компилятор проверяет, что каждое утверждение достижимо.

Это ошибка времени компиляции, если оператор не может быть выполнен, потому что он недоступен.

Этот раздел посвящен точному объяснению слова «достижимый». Идея состоит в том, что должен существовать некоторый возможный путь выполнения от начала конструктора, метода, инициализатора экземпляра или статического инициализатора, который содержит инструкцию к самой инструкции. Анализ учитывает структуру высказываний.

Цукерберг рекомендует:  Рекурсия вычисления значения символьного математического выражения

Затем раздел документирует, как определяется достижимость.

В частности, соответствующие пункты в вашем случае:

Любой другой оператор S в непустом блоке, который не является блоком переключателя, достижим, если оператор, предшествующий S, может завершиться нормально.

break , continue , return Или throw оператор не может завершаться нормально.


Таким образом, вашему утверждению «line 1» предшествует оператор ( break; ), который не может завершиться нормально, и поэтому он недоступен.

плюса

47633 Репутация автора

Компилятор проверит, есть ли больше кода после определенных ключевых слов. Другое ключевое слово, которое вызовет подобное сообщение, если вы замените break на return .

Автор: npinti Размещён: 19.08.2013 07:08

3 плюса

35615 Репутация автора

Означает ли это, что компилятор проверяет, способен ли он компилироваться для всех веток / строк кода?

Да, компилятор компилирует все тело кода и делает байт-код в соответствии с вашим кодом, он достаточно умный, чтобы unreachable code также обнаруживать dead code . Непосредственно break в for-loop недостижимых других заявлениях.

1 плюс

574193 Репутация автора

Компилятор может определить, что эти два оператора никогда не будут выполнены, и поможет вам написать правильный код, отказавшись от его компиляции, потому что это с вероятностью 99,9% будет ошибкой, а не сознательным выбором добавления операторов, которые никогда не будут быть казненным.

Автор: JB Nizet Размещён: 19.08.2013 07:09

2 плюса

46310 Репутация автора

Недоступный код не имеет смысла и является избыточным. Если в вашей программе есть какой-то недостижимый код, это ошибка и ее необходимо исправить. Следовательно, компилятор выдает ошибку.

Вы можете обратиться к аналогичным вопросам ниже

IntelliJ >

друзья Во-первых, спасибо за вашу помощь. Когда я компилирую проект java с использованием IntelliJ IDEA, он сообщает мне, что «Ошибка компиляции: внутренняя идея ошибки компилятора java». Дополнительная информация нравится: информация: Eclipse компилятор 4.6.2 использовался для компиляции java-источников. Информация: Модуль «sinoWeb» был полностью перестроен из-за изменений конфигурации/зависимостей проекта. Информация: 2020/3/23 11:44 — Компиляция завершена с помощью 1 ошибка и 0 предупреждений в 5m 32s 949ms Ошибка: java: Ошибка компиляции: внутренняя ошибка компилятора java. Я так запутался. Ниже приведены настройки.

Ошибка при компиляции кода Java

Почему ошибка происходит? Я включил:

  1. метод 2 паров в PreparedStatement ФОРАХ setDate занимает календарь, а не строка
  2. метод 2 паров в PreparedStatement течение setDate занимает календарь, а не строка,
  3. метод 2 паров для setInt занимает два int с, не и Int и String.
  4. у вас уже есть еще одно поле в вашем main методе , называемом e .

Компилятор говорит вам все, что вы needd знать:

Это означает, что вы передаете значение типа String до методов ведьма нуждается int . API-Doc из PreparedStatement покажет вам, что есть метод , setString(int,String) который будет принимать строку в качестве второго параметра.

Может быть, вы хотите позвонить ps.setInt(2, 88349);

Там ист в valiable под названием e уже определено в этой области.

Ошибка компиляции во FlashDevelop из-за Java

Недавно столкнулся с внезапной ошибкой компиляции AS3 проекта во FlashDevelop-е. Компилил себе нормально и вдруг в очередной раз выскакивают такие строчки:

Error: Comparison method violates its general contract!

Build halted with errors (fcsh).

Как мне удалось это исправить — читаем дальше…

Вот такие дела предающие дискомфортность. Причём при перезапуске FlashDevelop-а первая компиляция проходит хорошо, а последующие с этой же ошибкой.

Выяснил, что всё дело в нововведениях в последней Java версии 7 и что на Java 6 компилятор будет вести себя послушно.

Нашёл заметку о том, что помогает Shift+F8, перед самой компиляцией(F8 или F5). Да, правда помогает, но тыкать постоянно 3 клавиши вместо одной меня не устраивало и я начал копать.

Сначала дал слабину — откатил Java на 6-ю версию, всё стало хорошо, при этом не надо было даже переустанавливать FD.

НО! Запись на моём любимом screenr.com перестала запускаться, т.к. ей постоянно необходима последняя Java. А я так люблю этот сервис… Самый удобный сервис, когда надо по быстрому записать небольшой видос)

И я начал разбираться дальше!

В результате был найден следующий способ:

сначала ставим Java6 в одну папку, потом ставим Java7 в другую папку, а потом ищем в папке FlexSDK, такой вот файл:

Открываем его текстовиком и правим некоторые строки, чтобы получилось нечто следующее:

прописываем путь куда вы установили Java6:

и прописываем путь до папки lib в Java6:

Теперь перезапускам FD, если не помогло, то можно и комп перезагрузить и проверяем компиляцию — всё должно работать без вышеупомянутой ошибки!

UPD:

В дальнейшем, при автоматической переустановке явы проблема иногда возвращалась, а так же я нашёл другу возможную причину: кривая компиляция библиотеки .swc, которую вы подключаете в вашем проекте в FD. Кривая в смысле с какими-либо касяками-недочётами, которые должны исправляться простой перекомпиляцией (перепубликацией). Для проверки этой причины можно просто отключить все .swc от проекта и подряд по нажимать F8. Если ошибка перестанет появляться, то причина в библиотеках.

Так же замечал, что причина этой ошибки может быть в русских наименованиях элементов в библиотеке .swc.

Ошибка компиляции

Ошибка в 202 строке, пишет «local variables referenced from an inner class must be final or effectively final». Помогите исправить.


Добавлено через 1 минуту

Добавлено через 3 минуты
Чтобы долго не искали методы и классы, напишу интерфейсы и обьявления

10.07.2020, 14:57

Ошибка в компиляции
Всем привет, Столкнулся с такой ошибкой, и не понимаю как исправить. import.

Ошибка компиляции
С Новым годом, форумчане, и доброго времени суток всём, кто работает! У меня такая проблема. В.

Ошибка компиляции
Почему компиляции в IDEA выводит 11 а не 10? public class Main < public static void.

Ошибка при компиляции
Всем привет. Недавно начал учить JAVA. Набрал код: class Kran< public int god; .

Ошибка при компиляции
Привет. Есть проект компилируется в IDE прекрасно. Через командную строку т.е. javac выдает.

Ошибка компиляции обхода диаграммы Java [дубликат]

Что такое исключения Null Pointer ( java.lang.NullPointerException ) и что их вызывает?

Какие методы / инструменты могут использоваться для определения причины, чтобы исключить исключение из-за преждевременного прекращения работы программы?

12 ответов

Когда вы объявляете ссылочную переменную (т. е. объект), вы действительно создаете указатель на объект. Рассмотрим следующий код, в котором вы объявляете переменную примитивного типа int :

В этом примере переменная x является int , и Java инициализирует ее для 0. Когда вы назначаете его 10 во второй строке, ваше значение 10 записывается в ячейку памяти, на которую указывает x.

Но когда вы пытаетесь объявить ссылочный тип, произойдет что-то другое. Возьмите следующий код:

Первая строка объявляет переменную с именем num , но она не содержит примитивного значения. Вместо этого он содержит указатель (потому что тип Integer является ссылочным типом). Поскольку вы еще не указали, что указать на Java, он устанавливает значение null, что означает «Я ничего не указываю».

Во второй строке ключевое слово new используется для создания экземпляра (или создания ) объекту типа Integer и переменной указателя num присваивается этот объект. Теперь вы можете ссылаться на объект, используя оператор разыменования . (точка).

Exception , о котором вы просили, возникает, когда вы объявляете переменную, но не создавали объект. Если вы попытаетесь разыменовать num . Перед созданием объекта вы получите NullPointerException . В самых тривиальных случаях компилятор поймает проблему и сообщит вам, что «num не может быть инициализирован», но иногда вы пишете код, который непосредственно не создает объект.

Например, вы можете имеют следующий метод:

В этом случае вы не создаете объект obj , скорее предполагая, что он был создан до вызова метода doSomething . К сожалению, этот метод можно вызвать следующим образом:

В этом случае obj имеет значение null. Если метод предназначен для того, чтобы что-то сделать для переданного объекта, целесообразно бросить NullPointerException , потому что это ошибка программиста, и программисту понадобится эта информация для целей отладки.

Альтернативно, там могут быть случаи, когда цель метода заключается не только в том, чтобы работать с переданным в объекте, и поэтому нулевой параметр может быть приемлемым. В этом случае вам нужно будет проверить нулевой параметр и вести себя по-другому. Вы также должны объяснить это в документации. Например, doSomething может быть записано как:

Компиляция и запуск приложения из командной строки

1. Компиляция программ

Для компиляции программ из командной строки используется команда javac.

Чтобы получить список возможных ключей, выполните:

Чтобы скомпилировать программу MyFirstApp , запустите компилятор, указав имя исходного файла в командной строке следующим образом:


Компилятор javac создаст файл MyFirstApp.class , содержащий версию байт-кода.

В процессе компиляции исходного кода каждый отдельный класс помещается в собственный выходной файл, называемый по имени класса и получающий расширение .class .

2. Компиляция с помощью -d.

По умолчанию компилятор записывает сгенерированный .class в тот же каталог, где находится исходный класс . java . Это хорошо для маленьких проектов, но при работе на больших проектах файлы .java и .class должны храниться отдельно.

Ключ -d позволяет указать компилятору, куда записывать сгенерированные .class файлы.

Например у нас есть такая структура папок:

Следующая команда, выполненная из project1 папки сгенерирует файл MyFirstApp.class и запишет его в папку classes (предполагаем, что MyFirstApp не содержит оператора package ):

Теперь давайте рассмотрим пример компиляции класса com.company.lesson1.MyFirstApp , находящегося в пакете com.company.lesson1 . Имеется такая структура каталогов:

Следующая команда, выполненная из src каталога, сгенерирует файл MyFirstApp.class , и запишет его в каталог classes/com/company/lesson1:

Если каталог classes/com/company/lesson1 не существует, то он будет создан при компиляции.

Если же не существует каталог classes, то вы получите ошибку компиляции.

3. Запуск программы с помощью команды java.

Чтобы выполнить программу из командной строки, следует воспользоваться загрузчиком приложений Jаvа, который называется java.

Для получения списка возможных ключей, выполните:

Чтобы выполнить программу, передадим имя класса MyFirstApp (предполагаем, что MyFirstApp не содержит оператора package ) в качестве аргумента командной строки:

Если класс MyFirstApp находится в пакете, то выполняем команду:

Стоит заметить, что при запуске программы указывается только один класс без расширения .class .

4. Компиляция с помощью -sourcepath

Рассмотрим пример, в котором имеется два класса находящихся в разных пакетах — first.Example1 и second.Example2 . Класс first.Example1 создает экземпляр объекта second.Example2 :

И имеется следующая структура каталогов:

Давайте попробуем скомпилировать Example1.java так, как делали это ранее:

Ошибки произошли из-за того, что хотя javac и знал, где найти Example1.java , но он не знал, где находится Example2.java . Для решения этой проблемы используется ключ sourcepath , который указывает каталоги, в которых компилятор должен искать иерархию исходных файлов. В нашем случае это src. Перепишем строку компиляции:

Теперь программа компилируется без ошибок. Следует обратить внимание, что javac также скомпилировал файл Example2.java , на который ссылается скомпилированный файл Example1.java .

Ключ sourcepath может содержать несколько каталогов, отделенных точкой с запятой, хотя обычно в этом нет необходимости. Например, если нужно включить как локальный каталог src, так и каталог C:\projects\anotherproject\src, где хранится исходный код для другого проекта, то используем следующую команду:

Стоит заметить, что данная команда не компилирует каждый файл, найденный в какой-либо из этих иерархий. Она компилирует только файлы, на которые прямо или косвенно ссылается единичный файл .java , который мы компилируем.

Одд JAVA ошибка компиляции?

Мне нужно предварить это с я не разрешается использовать IDE в классе, я должен использовать TextPad для компиляции и запуска. Любая помощь будет принята с благодарностью.

Есть три файла, файл драйвера и два других файла класса. Файл lab4 файл драйвера и файлы класса являются «ЭЛЕМЕНТ» и «NAME».

Я получаю следующие ошибки при компиляции файла драйвера «lab4».

Код для файла «lab4» здесь:

Код для файла «ITEM», который ссылается на ошибку здесь:

Любая помощь будет удивительным!

5 ответов

Возможно, для Вашего проекта будут необходимы бесплатные векторные карты. На нашем сайте представлены карты для всех стран.

Вы назвали ваш метод getmanName() , Но называется manName() на линии ошибки.

Вы получили простую ошибку опечатки:

Ты хочешь item.getmanName() и нет manName()

manName является атрибутом, вы ссылаетесь его как метод manName()

поскольку manName является private вы должны использовать аксессор вы назвали getmanName()

собственно ссылка дается код будет item.getmanName()

лучше идиоматическое название метода будет getManName() соответствуещий UpperCamelCase именования для Java.

Вы призываете manName(), но ваш метод getmanName()

Не Насколько я могу видеть, нет manName способ в Item класс. Метод геттер называется getmanName . Как правило, существует это правило говоря, что геттер должен начать с самого начала слова и после этого следует поместить имя атрибута класса, который Вы хотите получить значение.

Изменение линии, что дает ошибку компиляции для:

Цукерберг рекомендует:  Sql server - Подскажите пару книг по MS SQL + T-SQL
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих