2011-01-19 1 views
0

В последние несколько лет я встречал «файлы-призраки» в Netbeans, но у меня не было доказательств этого, поэтому мне пришлось жить с ним, и когда я попытался объяснить ситуацию, мне трудно поверить, теперь У меня есть доказательство этого, и это пробная пробка, любое исправление для нее?Netbeans ghost file show stopper, как его исправить?

Это похоже на то, что у меня есть класс Java, который я использую в течение многих лет, своего рода инструмент, я добавляю немного, поскольку у меня больше опыта, но время от времени, после того, как я добавил новый метод, и использовал его в другом классе, Netbeans не смог его распознать, мне показалось, что Netbeans все еще смотрел на старую копию класса, где новый добавленный метод не существовал. И все же, если я скопировал этот обновленный класс в другой проект, новый метод работает отлично, и Netbeans может его найти. В NB 6.7 он просто поступил так, как класс застыл во времени, никаких новых дополнений к нему не узнали бы, теперь, когда я попробовал его в NB 6.9, я мог поймать «призрак»!

Это случилось случайно, вчера, после того как я обновил класс, я попытался использовать новый метод в другом классе в том же проекте, красный флаг поднялся, он не смог найти новый метод, поэтому я перепутал новый вызов метода и щелкнул правой кнопкой мыши на нем, «Навигация» => «Перейти к источнику», ударил призрак! Если я сделаю это в NB 6.7, он просто позвонит в колокольчик, как будто он говорит мне, что не может его найти. Но в NB 6.9 он переходит к «источнику», который не является моим исходным файлом java-класса [Get_Time.java], это еще один сгенерированный файл, поэтому я перепутал открытое имя файла «призрака» в редакторе, имя было «C : \ Users \ USER.netbeans \ 6.9 \ var \ cache \ index \ s117 \ java \ 14 \ gensrc \ Get_Time.java (только для чтения) ", контент казался скелетом моего исходного файла Get_Time.java, но определенно разные, и я уверен, что это «файл-призрак», который вызывает проблемы.

В ходе разработки я время от времени менял системное время для тестирования различных функций в классе, могло ли это привести к тому, что файл-призрак испортился, если я изменил текущее время до 2016 года и изменил исходный файл, тогда NB может запишите файл, последний измененный в 2016 году, и если я изменил время до 2011 года и добавлю новую функцию, он не примет его, потому что он может сравнивать даты разных версий исходного файла и придерживаться «последнего времени» печать" ?!

Желательно, чтобы NB никогда не хранил файлы призраков, «Всегда использовать фактический исходный файл», это позволило бы избежать многих таких проблем. Я попытался удалить этот файл-призрак, но в следующий раз, когда я скомпилировал его, он снова сгенерирован. Я не хочу удалять слишком много контента из «C: \ Users \ USER.netbeans \ 6.9 ...», это может испортить настройку моего NB. Во всяком случае, теперь это шоу-стоппер, я не могу добавить больше изменений в класс, он застыл во времени, в чем проблема?

+1

Вы попробовали «Чистоту и сборку»? –

+0

Излишне говорить, что это первый вариант, после очистки и сборки результат был результатом ошибки в классе, который пытается использовать новый метод в Get_Time.java, я несколько раз перемещал исходный файл в проект и из него, didn Не работай. – Frank

ответ

1

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

например.

1) проект A упакован в A.jar с классом Time.

2) Проект B зависит от a.jar и проекта A

3) Time.java в проекте А изменен

4) проект B не будет видеть изменения, как он всегда будет читать A.jar, построенный до того, как произойдет изменение.

+0

Bang !!! Прямо на цель! Именно так, у меня была упаковка в банке, я забыл об этом, и в ней есть версия старого Get_Time.java, которая вызвала всю путаницу, спасибо! – Frank

1

Попробуйте удалить кэш NetBeans (~/.netbeans/6.9/var/cache/index/), когда вы вернетесь в будущее и перейдете в прошлое. NetBeans, вероятно, немного запутался по меткам времени файла. Поскольку речь идет о крайнем случае, когда вы прыгаете с подобными датами, я сомневаюсь, что это будет то, что NetBeans придаст высокий приоритет при попытке исправить/обработать.

+0

Я не знаю, к какой будущей дате идти, есть ли способ удалить все старые воспоминания этого класса, как будто он никогда не существовал, и я только что создал его? Если я удалю «~/.netbeans/6.9/var/cache», что произойдет, это вызовет проблемы для IDE? – Frank

+0

Я бы удалил ** содержимое ** '~/.netbeans/6.9/var/cache/index /'. Есть и другие вещи в ... '/ var/cache', которые вы, вероятно, захотите сохранить. Совет, который я всегда видел, ограничен каталогом 'index'. Я просто сделал это (удалил содержимое «index») и не получил сразу видимых отрицательных побочных эффектов. – RobertB

+0

Примечание. NetBeans не может быть запущен (или некоторые файлы не будут удалены). Также существует '~/.netbeans/6.9/var/filehistory /', где NetBeans поддерживает то, что нужно для команд, связанных с локальной историей. Я никогда не пытался удалить это. Если кеш-индекс не помогает, вы можете попробовать ** переименовать ** 'filehistory', а затем создать пустую, чтобы увидеть, что может повлиять на удаление. – RobertB

 Смежные вопросы

  • Нет связанных вопросов^_^