2017-10-11 8 views
1

주 방법이있는 Java 클래스에 파일 정의가 있고 Eclipse 실행 메뉴와 상대 경로를 사용하는 Ant 빌드 파일에서 둘 다 실행할 수 있기를 원합니다.Ant에서 상대 경로로 Java 클래스를 실행하려면 어떻게해야합니까?

이클립스 실행 메뉴에서 main 메소드를 실행하는 경우에만 작동

: 개미에서 실행할 때

private static final File location = new File("./implementation/src/xml/data"); 

이에만 작동 :

private static final File location = new File("./src/xml/data"); 

이 프로젝트는 다음과 같이 구성되어있다 :

MyProject 
    | 
    | 
implementation 
    |  | 
    |  | 
    src build.xml 

이것은 Ant 태스크입니다.

<target name="run"> 
    <java classname="test.XMLCreator" classpathref="compile-classpath" > 
     <classpath> 
      <pathelement location="${classes}" /> 
     </classpath> 
    </java> 
</target> 

나는 이것이 앤트에서 경로가 빌드 파일의 위치에 비례하고 자바 클래스 안에서 소스의 루트 디렉토리와 관련이 있기 때문이라고 생각한다.

Ant 태스크 내부의 기본 디렉토리를 덮어 쓰는 방법이 있습니까?

답변

0

몇 가지 방법이 있습니다. 아마도 간단한 예를 들어, java 작업에 dir 속성의 상대 값을 지정하는 것입니다 :

<java classname="test.XMLCreator" classpathref="compile-classpath" dir=".." fork="true"> 

또한 다른 부작용이있을 수있는 일이에 대한 fork를 사용해야합니다.

특정 질문 : 많은 작업이 dir 속성을 지원하고 일부는 중첩 된 파일 세트를 사용하므로 중첩 된 요소에 디렉토리를 지정해야합니다.

또 다른 방법은 ant 작업을 사용하여 대상을 실행하는 것입니다. 거기에 지정된 디렉토리는 대상의 모든 작업에 대한 기반 디렉토리로 사용됩니다.

+0

이 작업했지만 포크 = "true"로 설정해야했습니다. –