2010-12-05 3 views
0

내가 이클립스 SDK에 버전 아주 간단한 자바 프로젝트를 구축을 위해 노력하고 컴파일하기 없습니다 : 3.6.1 빌드 ID를 : M20100909-0800두 개의 서로 다른 소스 폴더,

동일한 Java 소스 파일을 사용하여 서로 다른 출력 폴더가있는 두 개의 다른 원본 폴더가 있습니다. 그러나 프로젝트에서 CTE를 얻는 중입니다.

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" output="myBin" path="mySrc"/> 
    <classpathentry kind="src" output="yourBin" path="yourSrc"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> 
    <classpathentry kind="output" path="bin"/> 
</classpath> 

또한 프로젝트 탐색기 스크린 샷을 검색 할 수 있습니다 : - - :

alt text

나는 또한 this을 찾을 수 아래

는 프로젝트의 .classpath 파일입니다 인터넷 검색을하는 동안

이 문제에 대한 해결 방법은 크게 감사하겠습니다. 감사합니다. . )


편집 :

는 사실, 내가 지속적으로 강화하고 하나의 프로젝트를 가지고 함께 모든 버전을 유지하려는. 나는이 접근법을 here에서 봤다. 이 방법이나 더 나은 방법에 대한 해킹이 환영됩니다.

+0

동일한 클래스를 정의하는 두 개의 원본 폴더가있을 때 어떤 일이 발생할 것으로 예상됩니까? – aioobe

답변

2

Eclipse 원본 폴더에서 동일한 FQCN ( 정규화 된 클래스 이름)의 두 클래스를 가질 수 없습니다.

그러나 CLASSPATH에 동일한 FQCN의 두 클래스를 가질 수 있습니다. 하나는 원본 폴더에 있고 다른 하나는 종속성에 있습니다 (예 : JAR 파일). 그런 다음 클래스 로더에서 찾은 첫 번째 파일이로드되어 JVM에서 사용됩니다 ( Java 가상 머신). 여기 CLASSPATH에 관한 순서가 중요합니다.

희망이 도움이됩니다.

0

가장 쉬운 해결 방법은 각 원본 폴더마다 다른 패키지 이름을 지정하는 것입니다. 버전을 유지하려면 다음 중 하나를 수행하십시오.

  1. 소스 제어를 사용하십시오.
  2. 이클립스 내장 역사를 사용하십시오.
  3. 원본 폴더뿐 아니라 버전 이름을 가진 프로젝트에 전체 프로젝트를 복사하십시오.
  4. 원본 폴더를 원본이 아닌 디렉터리에 복사하십시오.