728x90
yum 을 통해서 openjdk17 버전 설치
- sudo yum install java17-openjdk -y
- sudo yum install java17-openjdk-devel -y
Main.java 생성 및 컴파일, 실행
- mkdir -p /web/java_site1
- cd /web/java_site1
- vim Main.java
- 컴파일 => javac Main.java
- 실행 => Main.class
- 이 상황에는 Main클래스 하나이기 때문에 문제가 되지 않지만 Main 클래스에서 다른 클래스들을 활용하여 컴파일 할 경우 여러 .class 파일이 생성되는데 이를 압축하기 위한 것이 jar 파일이다.
jar 파일의 종류 1 : executable jar
- 그 자체로 실행이 가능하다.
- 실행에 필요한 것들을 압축파일안에 많이 넣을 수록, 점점 더 다양한 환경에서 실행될 수 있게 된다.
- 실행에 필요한 모든것을 넣을 수도 있다.
- 많이 넣을 수 록 용량은 커진다.
- 그렇지만 그렇게 만들어진 jar 파일은 거의 어디에서나 실행 할 수 있다.
executable jar 파일 생성 및 실행
- vim Manifest.txt 로 Main 클래스 설정=> Main-class : Main
- jar 파일 생성 => jar -cvmf Manifest.txt java_site1.jar Main.class
- jar 파일 실행 => java -jar java_site1.jar
jar 파일의 종류 2 : lib jar
- 그 자체로 실행파일이 아닌 경우가 많다.
- 보통 다른 프로젝트에 종속되어 사용된다.
- 참고로 lib 들은 종속성 TREE로 묶인다.
- 예를들어 A 라이브러리가 라이브러리 B와 C에 의존한다고 가정했을 때
- 인텔리제이 같은 IDE 환경에서 개발자가 A 라이브러리를 설치하려는 의도가 있다면,
- 인텔레제이가 알아서 라이브러리 B와 C도 자동으로 설치해 준다.
- 사실 maven과 gradle이 이 역할을 수행한다.
jar 파일의 종류 3 : war
- executable jar의 한 종류이지만, 톰캣이 빠져있다.
- 그 이유는 어차피 war는 톰캣내부에 삽입되기 때문이다.
- 스프링부트에서는 프로그램을 배포할 때 jar, war 2개의 선택지가 존재한다.
- jar로 하면 기존의 war에 내장톰캣까지 넣는다.
- 이렇게하면 자바만 설치되어 있고 톰캣이 없는 환경에서도 우리 프로그램을 실행할 수 있다.
'IT' 카테고리의 다른 글
Linux(centOS9) 설정 7(proxy) (0) | 2022.09.16 |
---|---|
Linux(centOS9) 설정 6(톰캣 설치 및 실행, 실습) (0) | 2022.09.16 |
Linux(centOS9) 설정 4(각각의 포트 또는 도메인에 웹사이트 연결) (0) | 2022.09.15 |
Linux(centOS9) 설정 3(웹 루트 변경 및 selinux disabled) (0) | 2022.09.15 |
로컬 DNS 도메인 강제로 바꾸기 (127.0.0.1) (0) | 2022.09.15 |