매니페스트의 기본 클래스를 언급하는 jar 파일이 있습니다. 나는 다음과 같은 명령 코드 실행 및 작동java -jar 옵션이 클래스 경로 옵션을 변경합니까
java -cp .;./* com.foo.MainClass
를 사용하여 항아리를 실행하려고합니다.
나는 다음과 같은 명령을 사용하여 항아리를 실행하려고하면
java -cp .;./* -jar myjar.jar
내가 수업을하지 myjar.jar과 같은 폴더에 일부 단지에 대한 발견 execptions. 나는 -cp 옵션이 클래스 경로에있는 jar를 포함하기를 희망한다. java.class.path 속성을 출력하도록 코드를 수정했습니다. 첫 번째 경우에는 현재 디렉토리의 모든 jar 파일을 나열하고 두 번째 경우에는 myjar.jar 파일을 나열했습니다.
또한 모든 JAR 파일에 클래스 경로 요소를 추가하도록 매니페스트를 수정했습니다. 그런 다음 두 번째 명령이 작동합니다. 하지만 내 코드에서 명령 프롬프트에서 제공되는 이름을 가진 임의의 클래스를로드하려고하므로 클래스 경로에 폴더의 모든 병을 포함하고 싶습니다. 이 시나리오에서 두 번째 명령을 작동하게하려면 어떻게해야합니까? this에서
[OneJar] (http://one-jar.sourceforge.net/)에서 살펴보십시오. 그것은 CP 문제를 해결해야합니다. – flash
@flash : 아마도 그렇지 않습니다. 그는 컴파일 타임에 추가 클래스 경로를 알지 못한다고 말합니다 (그렇지 않으면 그는 단지 그것을 매니 페스트에 추가 할 수 있습니다). – Thilo
자신의 클래스 로더 (환경에 따라 다시 추가하는)를 사용해야하는 것 같습니다. – Thilo