2012-02-25 2 views
1

명령 줄에서 VLCJ 테스트 jar를 실행하려고합니다. 나는 실행을 시도하고 실행 항아리과 같은 디렉토리에 그 항아리를 넣어 경우 VLCJ는 두 개의 외부 JAR 파일클래스 패스 설정에서 여전히 외부 Jar를 찾을 수 없음

  • jna.jar
  • platform.jar

을 요구, 나는 성공적으로 실행할 수 있습니다 . 그러나 자신의 디렉토리에 넣고 다음을 수행하면 :

java -classpath "C:\Users\Constantin\workspace\Java Libraries\JNA" -jar executable.jar 

JNA 라이브러리에서 클래스를 찾을 수 없습니다. 나는 Java에 매우 익숙하며, 검색을 통해 가능한 답이 드러나지 않습니다. 그래서 누군가가 대답을 도울 수 있기를 바랬습니다 :

어떻게 디버깅합니까? 항아리를 찾지 못한 이유는 무엇입니까? 내 -classpath에 문제가 있습니까?

미리 감사드립니다. 콘스탄틴

+0

@RanRag 아니요. [Java options] (http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html#options)에 따라'-jar'가 지정되면 다른 모든 클래스 경로 설정은 무시. –

+0

@DaveNewton : 감사합니다. 내 의견을 삭제했습니다. – RanRag

답변

4

명시 적으로 단지를 포함, 또는 간단한 * 와일드 카드를 사용하여뿐만 아니라 실행 항아리를 포함한다. 명령 행에서 실행 파일 jar의 main 클래스를 지정하십시오 (이는 매니페스트에 있음).

java -classpath "C:\Users\Constantin\workspace\Java Libraries\JNA\*;executable.jar" com.foo.Bar 

은 (어디 com.foo.Barmain 방법, 응용 프로그램의 진입 점을 포함하는 클래스입니다.)

가 참조 Java options docs - jar가 지정되면, 다른 모든 클래스 경로 정보가 폐기되고 단지 당신이해야을 지정 모든 사용자 클래스를 포함합니다.


관련이 없지만 항상 Windows에서 공백이있는 경로는 피하려고합니다. 글쎄요, 어디서나, 특히 Java 관련 자료를 다룰 때 특히 그렇습니다. 그것은 일을해야하고 일반적으로 그렇지만, 그렇지 않은 경우에는 가장자리가 있습니다. (저는 여러분에게 몇몇 앱 서버의 일부 버전을보고 있습니다).

+0

Hey Dave, Java 옵션 문서를 살펴 보았습니다. 링크 주셔서 감사합니다. 나는 META-INF/MANIFEST.MF 파일을 추출했고 클래스 패스를 설정했다. 이 클래스 패스가 덮어 쓰여지 는가? 아니면 덮어 쓰기를 수행하는 클래스 패스인가? 모든 jar 파일을 포함시키고 메인 클래스를 설정하기 위해 어떤 옵션을 사용합니까? – Constantin

+0

@ Constantin 솔직히, 확실치는 않습니다. 항아리가 자체 클래스 경로를 설정하면 아마도이 클래스를 사용할 것입니다. 문제가되는 항아리가 포함되어 있다면 실행 가능한 항아리가 그들을 기대하는 곳에 놓아두기에 충분할 수 있습니다. 그러나 정말로 확실하지는 않습니다. 시도해야합니다. –

+0

나는 그것을 얻었다! 'java -cp 'C : \ Users \ Constantin \ ... \ JNA \ *; C : \ Users \ Constantin \ ... \ vlcj \ vlcj-1.2.2-test.jar "uk.co.caprica.vlcj .test.basic.TestPlayer' – Constantin

관련 문제