Jar 파일에서 클래스 실행


176

/ myfoldermyJar.jar 에 jar 파일이 있고 클래스를 사용하려는 경우myClass 하려면 명령 행에서 어떻게합니까?

나는 그것이 디렉토리로 가서 말할 것이라고 생각 java -cp myJar.jar.myClass했지만 작동하지 않습니다. 도움을 주시면 감사하겠습니다.


java -cp myJar.jar myClass명령 줄에 공백 대신 가짜 기간이 있습니까?
Chris Dodd

1
그 수업을 '사용하고 싶다'고 말할 때 무엇을 의미합니까? 특히 호출하려는 주요 방법이 있습니까?
Marsellus Wallace

답변:


256

사용하십시오 java -cp myjar.jar com.mypackage.myClass.

  1. 클래스가 패키지에 없으면 간단하게 java -cp myjar.jar myClass.

  2. 있는 디렉토리에 없으면 myJar.jar다음을 수행 할 수 있습니다.

    1. 유닉스 또는 리눅스 플랫폼에서 :

      java -cp /location_of_jar/myjar.jar com.mypackage.myClass

    2. Windows에서 :

      java -cp c:\location_of_jar\myjar.jar com.mypackage.myClass


10
com.mypackage.myClass (위의 예에서)가 다른 jar에 종속 된 경우 다음과 같이 실행하십시오. java -cp dependentfile1.jar; dependentfile2.jar; c : \ location_of_jar \ myjar.jar com. mypackage.myClass
akjain

2
작동하지 않는 경우주의해야 할 실패 경로 : 클래스의 정규화 된 경로가 jar 파일의 경로와 정확히 일치하는지 확인하십시오. -l /location-of-jar/myjar.jar의 압축을 풀고 com / mypackage / myClass 이외의 다른 것이 있으면 이것이 문제입니다. (당신이 빈을 참조하는 경우 예를 들어, / COM / myPackage에 / myClass가, 당신은 당신의 jar 파일을 구축하는 통에 cd'ed해야, 당신은하지 않습니다 일이 무엇인지.)
스콧 C 윌슨

myClass가 아닌 MyClass 사용
Breno Inojosa

위의 시도를 통해 스레드 "메인"java.lang.NoClassDefFoundError에서 예외 예외가 발생합니다. com.company.project.demo.bdd.runner.Execute.main (Execute.java:20의 오이 / api / cli / Main ) 원인 : java.lang.ClassNotFoundException : java.net.URLClassLoader.findClass (알 수없는 소스) java.lang.ClassLoader.loadClass (알 수없는 소스) sun.misc.Launcher $ AppClassLoader의 cucumber.api.cli.Main. java.lang.ClassLoader.loadClass (Unknown Source)의 loadClass (Unknown Source) ... 1 더보기
Vaibhav_Sharma

24

당신이 원하는 :

java -cp myJar.jar myClass

문서는 다음 예제를 제공합니다 :

C:> java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool

18

Java에서 사용 가능한 두 가지 유형의 JAR 파일이 있습니다.

  1. 매니페스트 파일이 포함 된 실행 가능 / 실행 가능 jar 파일입니다. 실행 가능한 항아리를 실행하려면 java -jar fileName.jar또는java -jar -classpath abc.jar fileName.jar

  2. 매니페스트 파일이 포함되지 않은 간단한 jar 파일이므로 경로를 지정하여 기본 클래스를 실행하면됩니다. java -cp ./fileName.jar MainClass


6

myJar.jar파일이 있고 디렉토리 myClasspublic static void main()메소드 가 있는 디렉토리에 있다고 가정 하십시오.

다음 명령 줄을 사용하십시오.

java -cp ./myJar.jar myClass

어디:

  1. myJar.jar현재 경로 , 참고 .대부분의 시스템에서 현재 경로에 있지 않습니다. 정규화 된 경로는 여기에서도 바람직하다.

  2. myClass는 클래스에 대한 정규화 된 패키지 경로 이며, 예제에서는 기본 패키지myClass 에 속하지 않는 것으로 가정 합니다 .com.mycompany.mycode.myClass


1

이것은을 실행하는 올바른 방법이며 .jar, 클래스 중 하나에 .jar있어야 main()하는 매개 변수는 다음과 같습니다.

java -DLB="uk" -DType="CLIENT_IND" -jar com.fbi.rrm.rrm-batchy-1.5.jar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.