2009-08-01 3 views
0

ant를 사용하여 응용 프로그램을 빌드하고 응용 프로그램의 main() 메소드를 실행하고 junit 테스트를 실행하고 모든 것을 jar 파일 (source + 빌드 + 라이브러리 + build.xml). 클래스에는 main() 메소드 진입 점이있는 러너 클래스가 포함됩니다.build.xml 파일을 포함하는 실행 파일 jar 파일을 생성합니다.

그러나 목적은 사용 된 모든 라이브러리 (예 : junit.jar)와 개미 build.xml 자체를 포함시키는 것입니다.

실행 가능한 jar 파일에 대해 main() 메소드 대신 ant 빌드 파일 itslef의 선택된 대상을 실행하는 방법이 있는지 궁금합니다. 물론 컴파일 타겟을 다시 실행할 필요는 없지만 main() 메소드 (내 실행 타겟의 java 요소)와 junit 타겟 만 실행할 수 있습니다. 그게 가능하니?

통찰력에 대해 미리 감사드립니다.

+0

denchr, 질문에 대답 했습니까? 그렇지 않다면 성취하려는 것이 무엇인지 명확히하고 답장을 편집합니다 (또는 다른 사람이 더 나은 답을 제공 할 것입니다). 그리고 내가 그랬다면, 투표를 하시거나 답변을 수락하십시오. 그것이 SO가 어떻게 작동하고 당신이 당신의 질문에 대해 그렇게하지 않는 것처럼 보입니다. – ChssPly76

+0

네, 실제로 그랬습니다. 무리 감사. 내가 대답 해 줘서 미안해. – denchr

답변

3

"실행 가능한 jar"은 사용자가 생각하는 것과 다릅니다. 그것은 모든 당신의 클래스들을 함께 팩할 수있게 해줍니다. (내가 그 점을 조금봤을지라도 소스 코드를 추가 할 수 있습니다.) 그리고 jar 매니페스트의 Main-Class 속성을 사용하여 메인 클래스를 선언하십시오. 세부 사항은 here입니다.

"java -jar my.jar"명령 줄을 사용하여 해당 jar를 실행할 수 있습니다.이 명령은 지정한 클래스의 main() 메서드를 호출합니다. 응용 프로그램에 필요한 다른 jar를 가리킬 수있는 매니페스트 파일의 Class-Path을 통해 specify classpath 속성을 지정할 수도 있습니다. 그건 의미가 없습니다 그 항아리는 병 안에 보관됩니다. 실제로 그렇게한다면, JVM은 특별한 예방 조치를 취하고 커스텀 클래스 로더를 작성하지 않는 한, JVM에서 클래스를로드 할 수 없습니다.