본문 바로가기

Web

cmd에서 JAVA 컴파일 및 class파일 실행(라이브러리 함께)

728x90
반응형

프로젝트 진행 중 셋팅이 전혀 돼있지 않은 pc에서 java파일을 실행해야하는 경우가 생겼다.

여기서 본인이 말한 셋팅은 java, 톰캣, framwork, 라이브러리 등등 어떠한 것도 설치 되어있지 않았다.

 

먼저 PC에 JAVA를 설치했다.

어찌됐든 JAVA로 작성한 기능이기 때문에 JAVA는 필수적으로 필요했다.

 

준비과정

 

JAVA설치는 이전 글을 참조 바랍니다.

https://thecardeveloper.tistory.com/19

 

JAVA 설치 및 환경변수 설정

본인 생각에는 개발에서 가장 기본 기초라고 말 할 수 있는 것이 언어라고 생각한다.  '자신이 개발을 시작할 때 어떠한 언어를 사용하여 개발을 할 것인가' 나는 많은 언어들 중 현재는 JAVA를

thecardeveloper.tistory.com

 

자 JAVA를 설치했다면 개발 PC에서 개발한 JAVA 파일을 가져오는 것이다.

컴파일 된 CLASS 파일이 아닌 JAVA 파일이다.

 

본인은 intelliJ로 작업 했기에 파일 아이콘이 intelliJ로 되어있다.

'JpgToPdfFileController.java' 파일을 개발PC에서 실행 시킬 PC로 옮겼다.

 

이후 JpgToPdfFileController.java에서 사용한 라이브러리 jar 파일이 필요하다.

본인이 사용한 라이브러리는 org.apache.pdfbox이다.

 

사용한 라이브러리의 jar 파일 또한 실행 시킬 PC로 옮기거나 다운 받았다.

 

cmd에서 JAVA 파일을 실행

 

먼저 'JpgToPdfFileController.java' 의 위치와 라이브러리 jar 파일들의 위치가 필요하다.

ex)

'JpgToPdfFileController.java' 위치 - > C:/Users/user/Desktop/folder/JpgToPdfFileController.java

'라이브러리 jar 파일' 위치  - > C:/Users/user/Desktop/folder/jar/pdfbox.jar

 

1. cmd에서 JAVA파일이 위치한 곳으로 이동

 

명령어 : cd C:/Users/user/Desktop/folder

(이동 후 잘 이동했는지 확인 하려면 dir 명령어를 입력하면 현재 위치한 폴더 내에 파일들이 나온다.) 

 

2. JAVA 파일 CLASS 파일로 컴파일

이 때 사용한 라이프러리 파일과 함께 컴파일 해줘야한다.

 

명령어 : javac -cp C:/Users/user/Desktop/folder/jar/pdfbox.jar; JpgToPdfFileController.java

(pdfbox.jar라는 라이브러리와 함께 JpgToPdfFileController.java 를 컴파일 하겠다.)

 

컴파일이 정상적으로 완료되면 JpgToPdfFileController.java이 위치한 폴더에 JpgToPdfFileController.class 파일이 생성된 걸 볼 수 있다.

 

3. CLASS파일 실행

 

명령어 : java -cp C:/Users/user/Desktop/folder/jar/pdfbox.jar; JpgToPdfFileController.class

 

정상적으로 실행 되는 걸 볼 수 있다. 

 

주의사항 및 팁

1. 실행하려는 JAVA파일 내에는 main()가 필수적으로 존재해야한다.

 - > class 파일을 실행하면 main()를 찾아 실행한다.

 

2. 본인이 알게모르게 사용한 라이브러리들이 몇 개 있을 수 있다.

 - > 해당 라이브러리들을 다운 받아 기존에 라이브러리를 옮겨놓은 곳에 같이 두자.

 

3. 사용한 라이브러리가 2개 이상일 경우

- > jar 파일들을 하나의 폴더에 모아두고 명령어에서

 javac -cp C:/Users/user/Desktop/folder/jar/*; JpgToPdfFileController.java

(jar 폴더 안에 있는 모든 파일을 함께 컴파일 하겠다.)

 

 java -cp C:/Users/user/Desktop/folder/jar/*; JpgToPdfFileController.class

(jar 폴더 안에 있는 모든 파일을 함께 실행 하겠다.)

 

 * 이다 그냥 * 이다.( *.jar가 아니다.)

 

4. 당연하게도 main()가 아닌 test()를 실행하고싶다면

- > main() 에서 test()를 호출해주면 된다.

728x90
반응형