2010-06-29 3 views
2

현재 작업이 우분투 NetBeans로 작성 및 개발 된 Java 프로젝트를 사용하고 있습니다. (팔레트를 광범위하게 사용하여, NB를 지속적으로 사용하게 만듭니다.) 웹캠과 인터페이스하고 클라이언트가 XP를 엄격하게 사용하는 소프트웨어를 포함하기 때문에 XP로 전송합니다. 우분투에서, 프로젝트는 정확하고 완벽하게 컴파일됩니다. 단, 수정해야 할 몇 가지 기능적 문제는 예외입니다.Java 프로젝트가 우분투에서 XP로 옮겨 졌을 때 오류가 발생했습니다.

그래서 Subversion을 사용하여 XP를 실행하는 VirtualBox에서 NB로 체크하고 코드에서 호출 된 올바른 라이브러리를 모두 추가했습니다. 몇 가지 문제가 남아 있으며, 대부분 을 확장하는 내부 클래스의 일부인 메서드 위의 @Override 주석과 거의 관련이 있습니다. 나는 이것을 조사하고 @Override이 나타내는 것을 아주 모호하게 이해하고 있지만, 그것을 내 상황에 어떻게 적용 할 지 모르겠습니다.

여러 클래스에서 일관성을 유지하면 클래스 경로를 제대로 수행하지 못했지만 오류를 찾을 수 없습니다. 당신의 경험상, 이러한 상황이 어떤 종류의 문제를 제기합니까?

편집 : 나는 가장 일반적인 제안 인 것으로 보이는 것을 이미 시도한 것을 잊어 버렸다. 모든 것이 새로 설치되었지만 두 시스템에 사용되는 JDK는 1.6입니다.

편집 편집 :이 오류는 내부 발생 :

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

을 그리고 다음의 첫 번째 줄에 :

@Override 
protected Boolean doInBackground() 

내가받을 다음과 같은 오류 :

"method does not override or implement a method from a supertype"

그것을 @Override은 C처럼 오버로딩 연산자와 비슷한 것을 나타냅니다. 단, wi 만 방법. 이 경우 문제는 jdesktop의 Task 인터페이스가 이 아니며Boolean doInBackGround() 메서드를 가지고 있다고 생각하기 시작했습니다. 그러나 jdesktop API를 고정하는 데 어려움을 겪고 있습니다. jdesktop을 태그로 추가했습니다.

+3

@Override는 슈퍼 클래스 또는 인터페이스의 메소드를 오버라이드하는 mehtods에 추가됩니다 (Java 6의 경우). java 5에서는 인터페이스에서 오는 재정의 메서드에 추가되지 않고 컴파일러 경고를 제공합니다. 아마도 JVM 버전에는 차이점이 있습니까? – Redlab

+0

위의 편집을 참조하십시오.이 글을 읽고 이미 자바 버전을 확인했습니다. (보내기 :-p를 눌렀을 때 변경됨) – malenkylizards

+0

도와주세요. 첫 번째 오류 메시지는 실제로 무엇을 말합니까? –

답변

-1

문제가 해결되었습니다. JAR 파일이 라이브러리에서 누락되었습니다. Ha. 덕택에 .class 파일이 접근 가능하다는 소식이 내게 들었습니다.

+0

JAR 파일이 누락 된 것을 기억합니까? 같은 오류 메시지가 나타납니다. – Pops

1

내 첫 번째 생각은 대소 문자가 구분되지만 대개는 다른 방식으로 나타납니다. 즉, 파일 은 Windows에서는 발견되었지만 Linux에서는 발견되지 않습니다.입니다. 동일한 이름이지만 다른 경우에 프로젝트에 파일이있을 수 있습니까? 이 경우 Windows는 우분투에서 대소 문자를 구분하는 것과 비교하여 일부 파일의 다른 버전을 발견 할 수 있습니다.

어쨌든 "거의 모든 @Override 주석과 관련된"문제를 추측하지 않고 실제 오류 메시지를 게시하면 도움이 될 것입니다.

+0

죄송합니다. "메소드가 수퍼 유형의 메소드를 대체하거나 구현하지 않습니다." 특정 예를 들면, 클래스 표제는 다음과 같습니다. [코드] private 클래스 TakeSnapshotTask extends org.jdesktop.application.Task [/ 코드] 및 상기 에러 메시지를 가지고있어서 [코드] @Override 보호 부울 doInBackground()/코드] 그리고 경우에 대하여 문제를 볼 것이다. 감사! – malenkylizards

0

플랫폼/OS는 관련이 없습니다. 이 오류는 두 가지 다른 Java 환경에서 코드를 실행하고 있음을 강력히 암시합니다.

1.6 JDK에 대해 코드를 컴파일하는 것뿐만 아니라 을 실행하여 1.6 JVM에서도을 재확인하십시오.

+0

'@ Override'는 런타임에 아무 일도하지 않습니다 - 그것은 유지되지 않습니다 : http://java.sun.com/javase/6/docs/api/java/lang/Override.html –

+0

문제를 보여주기위한 적절한 프로토콜은 무엇입니까? 해결 되었습니까? 이 글에서 위의 마지막 코멘트는 그렇게 인정하지만보기가 어렵습니다. – malenkylizards

+1

솔루션이 실제로 누락 된 JAR이었던 방법을 설명하는 질문에 답변 –

관련 문제