3 개의 jar 파일과이 jar 파일에 종속 된 .java 파일이 있습니다. 명령 프롬프트를 사용하여 이러한 jar 파일로 .java 파일을 어떻게 컴파일합니까?
java -cp ".;magic.jar" Foo
괜찮습니다 java Foo -cp ".;magic.jar"
.
3 개의 jar 파일과이 jar 파일에 종속 된 .java 파일이 있습니다. 명령 프롬프트를 사용하여 이러한 jar 파일로 .java 파일을 어떻게 컴파일합니까?
java -cp ".;magic.jar" Foo
괜찮습니다 java Foo -cp ".;magic.jar"
.
답변:
"-cp"옵션을 사용하여 "javac"명령에 jar 파일을 포함 할 수 있습니다.
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
"-cp"대신 "-classpath"를 사용할 수도 있습니다.
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
환경 변수 "CLASSPATH"를 올바르게 설정하여 컴파일 할 때마다 jar를 포함 할 수 있습니다. 환경 변수는 Java 파일을 컴파일 / 실행하는 데 사용해야하는 jar 및 클래스가있는 경로를 저장합니다. 파일을 컴파일 할 때마다 jar를 개별적으로 포함 할 필요는 없습니다.
시스템마다 클래스 경로를 환경 변수로 설정하는 방법이 다릅니다. Windows, Linux 등의 명령은 다릅니다.
이 블로그 에서 자세한 내용을 확인할 수 있습니다 .
http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java
나를 위해 일했습니다. 나는 맥을 사용하고 있었다. 나는 어딘가에서 ':'가 유닉스에 사용되는 것을 읽었습니다.
.:
합니까? 어리석은 질문이라면 미안하지만 나에게는 분명하지 않습니다.
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
Linux에서 시도하십시오
javac -cp jarfile source file
예 :-
javac -cp .:/jars/* com/template/*.java
.:/jars
내 JAR 파일이있는 디렉토리로 대체, 나는 오류 메시지가 나타납니다 javac: invalid flag: /location/of/first/jar/file.jar
.
구문은 Windows dos 명령에서 작동합니다.
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
환경 변수 설정을 통해 모든 종속성 jar 파일을 클래스 경로에 추가하거나 아래 단계를 사용하십시오.
아래와 같이 종속성 jar 파일의 클래스 경로를 설정하십시오.
set classpath=C:\Users\sarath_sivan\Desktop\jars\servlet-api.jar; C:\Users\sarath_sivan\Desktop\jars\spring-jdbc-3.0.2.RELEASE; C:\Users\sarath_sivan\Desktop\jars\spring-aop-3.0.2.RELEASE;
이제 Java 파일을 컴파일 할 수 있습니다. (명령 javac YourJavaFile.java
)
이것이 당신의 의존성 문제를 해결하기를 바랍니다.
다음은 단계입니다.
모든 jar와 .java 파일을 같은 폴더에 복사합니다 (긴 경로를 언급하는 대신 파일 이름을 쉽게 언급 할 수 있습니다. jar와 .java를 별도의 폴더에 보관할 수 있음).
컴파일하기,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
실행하다,
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
이게 도움이 되길 바란다!
그러면 .class 파일이 생성됩니다.
javac -classpath "[jarname with specified path]" [java filename]
이것은 클래스 파일을 실행합니다 :
java -cp [jarname with specified path]: [java filename]
javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java
와 ** 실행 java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile.java also i tried java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile
컴파일 시간과 런타임에 종속성을 지정해야합니다.
컴파일하려면이 형식을 사용하십시오.
javac -cp "*.jar;classfile_path" filename.java
예:
javac -cp "ojdbc6.jar;c:\programs" Main.java
Ubuntu를 사용하는 경우 :
/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java
폴더 위치로 이동 (패키지 구조 외부)
/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample
참고 : 파일 위치 및 패키지 이름을 참조하십시오.