2011-09-02 2 views
2

내 응용 프로그램을 Hudson Server (Windows 컴퓨터)에 배포 할 때 클래스 경로가 너무 길어서 java.exe를 호출하는 데 문제가 있습니다. Windows가 특정 길이 이후에 탭핑됩니다.개미의 classpath 단축에 대한 몇 가지 팁이 있습니까?

<path id="classpath.project"> 
    <fileset dir="lib" includes="**/*.jar" /> 
</path> 

내가 개미에서 무엇을 할 수 :

classpath 세미콜론

로 구분 Jar 수백 개의 파일은 각각의 병이 명시 적으로 클래스 경로에 나열되어있는 경우 다음과 같은 클래스 패스가 너무 큰 것 가정 기본적으로 내 classpath 단축?

+0

classpath 와일드 카드 사용에 대한이 질문을보십시오. 은 [자바 클래스 경로에서 여러 개의 항아리 설정] [1] [1] : http://stackoverflow.com/questions/219585/setting-multiple-jars-in-java-classpath –

답변

4

OneJar에 대해 Google을 검색 할 수 있습니다. 직접 만들고 싶다면 매니페스트 만있는 "빈"jar 파일을 생성하십시오. 매니페스트에 필요한 모든 항아리가 들어있는 "Class-Path : a.jar, another.jar, bla-blub.jar"줄을 추가하십시오. ("manifest Class-Path"의 경우 Google) 모든 JAR이 배포되는 경우 JVM이 이제 매니페스트를 사용하여 클래스 경로에 "비어있는"jar 파일 만 필요합니다. 다른 모든 항아리.

+0

주 '-classpath'는 libs에 대한 상대 경로와 절대 경로를 모두 지원하지만 매니페스트 파일의'Class-Path'는 상대 경로만을 사용할 수 있습니다. 빌드 도구가 Maven과 같은 절대 경로 만 사용하면 약간의 문제가 발생할 수 있습니다. –

5

Java 6은 wildcards in the classpath을 지원하므로. 구체적으로는 특정 디렉토리에있는 모든 jar 파일을 참조 * 사용을 지원 (주의 : 하지*.jar를!) : 클래스 패스로 *를 사용

는 "현재 디렉토리에있는 모든 jar 파일을"의미 lib/*을 사용하면 모든 "을 의미 jar 파일을 디렉토리 lib/ "에 복사하십시오.

의 디렉토리가 없으면 충분합니다. 하지만 Ant에서 그 사실을 어떻게 사용하는지 모르겠습니다.

관련 문제