Подтвердить что ты не робот

Почему NetBeans не может найти CopyLib для некоторых моих проектов?

Сегодня утром я столкнулся с неприятным вопросом, который стоил мне несколько часов, пытаясь проследить его. Я унаследовал некоторый код с двумя проектами NetBeans, A и B. Они оба строят и работают успешно; нет сложных задач построения Ant; только настройка IDE по умолчанию.

Эти два проекта имеют большой объем кода, поэтому я включил его в новый третий проект Common. После разрешения ссылок и т.д. NetBeans не сообщает об ошибках. Все кажется прекрасным. Я строил проект Common без заминок. Тогда все становится странным.

Внезапно, когда я пытаюсь построить проекты A и B, они компилируются просто отлично - но в конце сборки каждый из них обрывается с той же ошибкой:

Copying 1 file to C:\Projects\projectName\build
C:\Projects\projectName\nbproject\build-impl.xml:723: The following error occurred while executing this line:
C:\Projects\projectName\nbproject\build-impl.xml:543: taskdef class org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs cannot be found
 using the classloader AntClassLoader[]
BUILD FAILED (total time: 3 seconds)

Все .class файлы отображаются в build/classes, и все остальное, кажется, прошло гладко, но ничего не делает в папку dist. Поэтому начинается поиск проблем CopyLibs.

Люди предложили убедиться, что org-netbeans-modules-java-j2seproject-copylibstask.jar был правильно указан в файле project.properties (это было), а также в файле <userhome>/.netbeans/version/build.properties (это было). Библиотека существует во всех местах, на которые она ссылается; на самом деле, по умолчанию NetBeans помещает копию этой банки в папку ./lib всех проектов Java. Я пробовал создавать совершенно новые проекты и приводить источники в ручную, безрезультатно. Я был озадачен.

Я размещаю здесь, надеясь, что:

  • Возможно, кто-то может дать мне некоторое представление о , как это произошло в первую очередь и как его избежать.
  • Возможно, кто-то может сказать мне , почему только некоторые проекты ломаются, даже если все имеют точно такой же файл project.properties или являются совершенно новыми.
  • Люди с этой проблемой в будущем будут иметь лучшее время.
4b9b3361

Ответ 1

Ближайшее исправление, которое я могу найти в Интернете, эта ссылка, которая включает только частичное решение. Следуя инструкциям на этом посту, эта проблема не будет устранена, потому что в ней отсутствуют некоторые важные вещи. Здесь решение, которое я в конечном итоге натолкнулся.

В NetBeans, перейдите сюда:

Tools > Options > Miscellaneous > Ant

В нижней части окна есть поле с надписью Properties. Вставьте следующее:

libs.CopyLibs.classpath=C\:\\Program Files\\NetBeans 7.1\\java\\ant\\extra\\org-netbeans-modules-java-j2seproject-copylibstask.jar

Замените NetBeans 7.1 на ваш фактический путь установки. Это на самом деле все, что есть! Дело в том, что NetBeans, похоже, делает несколько разборок текста в этом поле, когда вы нажимаете OK. В частности, обрабатывает обратную косую черту как escape-последовательности, а также иногда добавляет обратную косую черту.

Вот почему мне так долго нужно было найти: я пробовал решение по ссылке (например, C:\Program Files\Netbeans и т.д.), и это не сработало, но позже я вернулся в это окно, чтобы обнаружить это: C\:Program Files и т.д. "О!" Я подумал: "Я просто набрал это неправильно! Какой я дурак!" Поэтому я "скорректировал" его на C:\ и попробовал еще раз - до сих пор нет успеха. Оказывается, NetBeans добавит обратную косую черту, чтобы сбежать :, но просто удалит любые другие однократные обратные следы, найденные здесь.

Я до сих пор не знаю, почему это произошло в первую очередь или почему это только влияет на некоторые проекты.

Ответ 2

У меня был NetBeans 7.1.2 на моем Mac, удалил его, а затем установил 7.3.1. У меня такие же ошибки. Вот что мне нужно было сделать, чтобы исправить: перейдите в

Меню NetBeans > Настройки > вкладка Java > Ant subtab > Свойства

Я заметил, что у свойств все еще был старый номер для приложения, поэтому мне пришлось изменить 7.1.2 на 7.3.1, а затем он сработал.

enter image description here

Спасибо, что поставил меня на правильный путь!

Ответ 3

Проблема для моей установки оказалась в проекте, который я включил в качестве библиотеки. У него все еще была папка CopyLibs-2, а не обновленная папка CopyLibs, но у nblibraries.properties был обновленный материал libs.CopyLibs. Я не знаю, как вызвать обновление, поэтому я сделал следующее:

  • Deleted lib/CopyLibs-2
  • Щелкните правой кнопкой мыши папку "Библиотеки" и выберите "Добавить библиотеку".
  • Задача Imported CopyLibs
  • Добавлена ​​библиотека задач CopyLibs

Это сделало CopyLibs в моей папке Libraries, которая казалась немного странной, потому что она обычно скрыта, как и jnlp, но она работала без глобального набора libs.CopyLibs.classpath, установленного в Tools > Java > Ant Properties.

Потребовалось несколько попыток правильно очистить материал и добавить его. Иногда он добавляет, но затем показывает проблему, и сообщение с разрешением будет "Библиотека" CopyLibs "имеет отсутствующие элементы" и "Проблема: проект использует библиотеку классов, называемую" CopyLibs ", но элементы классаpath этой библиотеки отсутствуют". Я не понимаю, почему весь процесс настолько суетливый и волшебный.

Я также заметил, что в среде IDE были обновлены мои project.properties, чтобы изменить javac.classpath от ничего до ${libs.CopyLibs.classpath}

Ответ 4

Справочная информация. Свойства Ant хранятся в файле build.properties в каталоге пользователя. Это зависит от платформы, но ее можно найти, просмотрев файл nbproject/private/private.properties. Затем просмотрите путь в файле user.properties.file и посмотрите в указанном файле - вы можете увидеть пути, используемые в сборке Ant, и верны ли они.