2011-03-10 4 views
0

패키지 클라이언트에 public static void main()이있는 간단한 클래스 FabricClient가 있습니다. 이 패키지는 내 프로젝트의 'bin'디렉토리에 있습니다. 다음과 같이 bin 디렉토리에서 명령 행에서,이 클래스의 메인을 실행할 수 있습니다개미의 다른 디렉토리에있는 java를 실행하는 중 오류가 발생했습니다.

내가 부모 디렉토리에서 내 개미 build.xml 파일을 실행하려는
[email protected] /c/projects/myproject/bin 
$ java -classpath .;c:\dir\my.jar client.FabricClient 

(/ C/프로젝트/MyProject를) 어디에서 손으로 자바 명령을 실행합니다. 다음과 같이 내가 디렉토리 속성을 사용하여 시도했다 :

<target name="run-client"> 
    <java classname="client.FabricClient" 
     classpath="${classpath}" 
     fork="true" 
     failonerror="true" 
     dir="./bin"> 
    </java>   
    </target> 

내 클래스 경로 변수는 명령 줄에서 사용 (클래스 작품을 컴파일 내 개미 명령을 현재 디렉토리뿐만 아니라 my.jar의 디렉토리를 가지고) 같은 변수를 미세

여기에 클래스 패스

<property name="my.jar" location="c:\dir\my.jar" /> 
    <property name="classpath" location=".:${my.jar}:." /> 

나는 전형적인 java.lang.NoClassDefFound 오류를 얻고을 생성하는 데 사용되는 설정입니다 : 클라이언트/FabricClient

Ant 버전 1.7.0을 사용 중입니다.

build.xml 파일을 bin으로 이동하고 dir 속성을 제거하면 올바르게 작동합니다. 로컬 디렉토리가 아닌 디렉토리에서 java를 실행할 수 있습니까? 나는 이것이 dir 속성이 한 것이라고 생각했습니다.

+0

당신이 게시 할 수 믿을 수 있습니까? –

+0

whys는 classpath 속성의 현재 디렉토리가 두 번입니까? my.jar 속성 전후에? – JGFMK

답변

0

클래스 경로가 파일 my.jar을 포함해야하지 디렉토리 my.jar은입니다. 개미의

+0

Correction, classpath는 Jar 파일 자체를 가리키고 있습니다. –

1

경로는 일반적으로 다음과 같이 언급하고 있습니다 :

<java classname="client.FabricClient" 
    fork="true" 
    failonerror="true" 
    dir="./bin"> 
    <classpath> 
     <pathelement location="C:/dir/my.jar"/>   
    </classpath> 

당신이 $ {클래스 경로}을 설정하는 방법을 더 읽기 및

+0

충분하지만 classpath 속성을 건드리지 않고 build.xml을 bin 디렉토리로 옮길 수 있다고 가정 할 때, 이것이 루트라고 생각하지 않습니다. 문제의 –

관련 문제