Внезапное полное разрушение: не удается найти символ, ClassNotFoundException (Java, NetBeans) - PullRequest
0 голосов
/ 25 октября 2018

У меня есть Java-приложение (сервлет), работающее в Tomcat;и связанная внешняя библиотека .jar.Все было хорошо, и внезапно символы (имена методов) не могут быть найдены.Несмотря на то, что я могу запустить приложение в NetBeans, я не могу собрать приложение для развертывания на сервере: Build Failed;серия ошибок Cannot Find Symbol, связанных с внешним файлом .jar, добавленным как «библиотека» в NetBeans.Библиотека работала нормально и не была изменена:

... / src / java / com / shelterislandsoftware / alphascreen / screen / FeatureNumber.java: 842:

   error: cannot find symbol
        this.formatType = SisFormat.valueOf(in.readUTF());
   symbol:   method valueOf(String)
   location: class SisFormat

.../src/java/com/shelterislandsoftware/alphascreen/screen/FeatureNumber.java:911:
   error: cannot find symbol
        out.writeUTF(formatType.name());
   symbol:   method name()
   location: variable formatType of type SisFormat

исходные файлы классов SisFormat.java находятся в правильных папках src, в которых они всегда были;методы присутствуют в классе и написаны правильно.Какие-либо предложения?Спасибо.

- ОБНОВЛЕНИЕ: Теперь я также не могу (повторно) собрать старый проект JavaFx.Код Java был построен и работает как приложение OSX;Я хотел изменить изображение icns, и я не могу восстановить.Я сомневаюсь, что новый образ является источником проблемы сборки, так же как я сомневаюсь, что мой (совершенно функциональный) код Java-сервлета является источником моей проблемы сборки, описанной выше.Я не знаю наверняка, но я действительно подозреваю, что есть проблема с новым NetBeans 8.2 и / или osx Mojave.Никто не заинтересован, хорошо тогда.Я просто скопировал (ранее) исходные классы библиотеки непосредственно в основной проект, описанный выше, и это позволяет мне строить.Это неоптимально, так как я использую один и тот же файл .jar в отдельном веб-приложении, так что теперь у меня есть две копии одного и того же класса для обслуживания.О, кроме того, тот же самый .jar, который сейчас нельзя собрать как внешний jar-файл в этом веб-приложении, описанном выше, все еще отлично встраивается в качестве внешнего jar-файла в другом веб-приложении.Без разницы.

1 Ответ

0 голосов
/ 01 января 2019

Я исправил эту проблему.Новый osx (Mojave) и новейшие Netbeans на момент написания (8.2) не переносят определенные имена пакетов.Я исправил проблему, изменив имена своих пакетов.В частности, у меня были проекты (в своем собственном каталоге проектов) и библиотека (в своем собственном каталоге библиотеки).Хотя эти каталоги были различны в файловой системе компьютера, подсегмент тех путей, которые Netbeans считает «именем пакета», имел общий корневой элемент.И проект (ы), и «имя пакета» библиотеки начинались как com.mydomain, за которым следовало конкретное имя проекта или библиотеки.Я исправил проблему, изменив имя пакета библиотеки на «lib.mydomain», и все проблемы со сборкой прекратились.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...