Ошибка @Override при переносе проекта Java из Ubuntu в XP - PullRequest
2 голосов
/ 29 июня 2010

Моя текущая задача - взять Java-проект, написанный и разработанный в Ubuntu NetBeans (широко использующий палитру, которая, как мне кажется, лишает меня возможности продолжать использовать NB), и перенести его в XP, поскольку он включает программное обеспечение, которое взаимодействует с веб-камерой и клиентом строго использует XP. В Ubuntu проект компилируется правильно и полностью, за исключением нескольких проблем с функциональностью, которые мне было поручено исправить.

Итак, используя Subversion, я зарегистрировал его в NB на VirtualBox под управлением XP и добавил, насколько я могу судить, все правильные библиотеки, которые были вызваны в коде. Остается несколько проблем, почти все они связаны с аннотациями @Override выше методов, которые являются частью внутреннего класса, который расширяет org.jdesktop.application.Task<Boolean, Void>. Я исследовал это и очень смутно понимаю, что означает @Override, но не уверен, как применить это к моей ситуации.

Непротиворечивость проблемы в нескольких классах говорит о том, что я неправильно сделал свой путь к классам, но не могу найти там никаких ошибок. По вашему опыту, какую проблему предлагают эти обстоятельства?

РЕДАКТИРОВАТЬ: я забыл упомянуть, что я уже попробовал то, что казалось наиболее распространенным предложением; все недавно установлено, JDK, используемый на обеих машинах, - 1.6.

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ: ошибка происходит внутри:

private class TakeSnapshotTask extends org.jdesktop.application.Task<Boolean, Void>

И в первой строке следующее:

@Override
protected Boolean doInBackground() 

Я получаю следующую ошибку:

"метод не переопределяет или не реализует метод из супертипа"

Похоже, что @Override обозначает что-то похожее на операторы перегрузки, как в C, только с методами. В этом случае я начинаю думать, что проблема в том, что интерфейс Task в jdesktop не имеет Boolean doInBackGround() метод. Однако, мне трудно связать API jdesktop. Я добавил jdesktop в качестве тега.

Ответы [ 3 ]

1 голос
/ 29 июня 2010

Моей первой мыслью была бы чувствительность к регистру, но обычно это проявлялось бы по-другому (то есть файл находится в в Windows, но не в Linux). Возможно ли, что в вашем проекте есть файлы с одинаковыми именами, но в разных случаях? В этом случае Windows может просто находить другую (и, очевидно, неправильную) версию какого-либо файла по сравнению с чувствительным к регистру соответствием в Ubuntu.

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

0 голосов
/ 29 июня 2010

Проблема решена. Файл JAR отсутствовал в библиотеке. Для меня было новостью, что файлы .class в них были доступны, благодаря Ха!

0 голосов
/ 29 июня 2010

Платформа / ОС не имеет значения. Ошибка настоятельно предполагает, что вы выполняете код в двух разных средах Java.

Дважды проверьте, что вы не только компилируете код для 1.6 JDK, но и выполняете его на 1.6 JVM.

...