Study/SpringBoot

스프링부트 환경 설정 및 에러 정리

728x90

들어가면서 .. 

해당 스프링부트 강의 강의를 들으며 정리한 내용 입니다.

기존에 학원에서 설치한 프로그램들이 설치 되어있는 상태 입니다.


프로젝트 환경 설정

  • 프로젝트 생성
  • JAVA 11 설치
  • IntelliJ 또는 Eclipse 설치

스프링 부트 스타터 사이트 이동해서 스프링 프로젝트 생성

Gradle Project, 2.3.x 버전

Language : Java

Packaging : Jar

Java : 11

Progect Metadata

groupId : hello / artifactId : hello-spring (강의용) 나머지는 그대로

Dependencies : Spring Web, Thymeleaf

 


스프링 부트는 기존에 썼던 스프링에서 설정해놨던 파일들을 자동으로 해놓음. 아주 간편!

 

위에서 받은 압축파일을 푼다 → IntelliJ 들어가서 Open Project → hello-spring 에서 gradle 클릭 → Open as Project 클릭 → 다운로드를 받는다

 

(참고 사항)

src에 main과 test가 기본으로 들어가게 되는데, main 아래에는 java, resources가 들어가있다.

test는 test code들과 관련된 소스들이 들어가있다. 테스트 소스는 요즘 아주 중요하다.

resources에는 java파일을 제외한 xml이나 각종 설정 파일들이 들어가있다.

build.gradle 이 매우 중요하다. → gradle이 버전 떙겨오고 라이브러리 가져오는걸로만 일단 먼저 이해하자.

sourceCompatibility : 자바 버전

repositories 에 들어가면 mavenCentral 이 있는데, 이 사이트에서 다운로드를 받아라 라고 기본적으로 간편하게 설정해놓은것.

dependencies 에 보면 implementation 에 thymeleaf가 있는데, 그건 아까 설치한 템플릿 엔진, 그리고 같이 추가한 starter-web 도 들어가있다.

testImplementation 에는 junit 이 자동으로 들어간다. 기본적으로 들어가므로 참고한다.

main - java - hello.hellospring - helloSpringApplication 에 들어가면 어노테이션도 되어있고, 클래스도 알아서 만들어져 있다.

해당 메인 메서드를 run 한다.

 

❗❗❗ ERROR

'java se 11' using tool chain: 'jdk 8 (1.8)'.

나는 기존에 Eclipse 로 JDK8을 사용했기 때문인지

해당 에러가 나왔다.

 

File-setting 검색창에 gradle 이라 검색하였더니, JDK 11버전이 아닌것을 확인하자.

JDK 11버전을 다운 받은 후, Gradle JVM버전을 11로 바꾸면 해결!

 

[ JDK 11 설치 방법 (윈도우용) ]

https://www.oracle.com/java/technologies/javase-downloads.html

들어가서 JDK11 설치

변수 이름 변수 값
JAVA_HOME C:\Program Files\Java\jdk-11.0.x (해당 다운로드 받은 버전)
CLASSPATH .%JAVA_HOME%\lib\tools.jar
Path %JAVA_HOME%bin 추가

 

( 기존에 JDK8에 덮어 씀 ... )

 

❗❗❗ ERROR

A JNI error has occurred, please check your installation and try again

컴파일 설정된 SDK 버전과 실행하고 있는 자바버전이 다를 경우에 발생하는 에러.

File - Project Structure 들어가서 11버전으로 바꾸어준다.

 

❗❗❗ERROR

finished with non-zero exit value 1

IntelliJ, Gradle 환경에서 프로젝트를 첫 실행 할 때 해당 오류가 발생한다.

File - Settings 메뉴 클릭 gradle 검색 → Build and run using, Run tests using 둘 다 IntelliJ IDEA 로 변경한다.

JVM 11버전으로 안바뀌어져 있다면 바꾸어주자.

 

❗❗❗ERROR

기존에 학원에서 들었던 JDK1.8, Eclipse 와 달리 Java SE11버전과 IntelliJ를 새로 사용하기때문인지 에러가 많이 난다.. T_T

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

기본 포트는 8080인데, 이미 나는 AWS로 사용하고 있는 포트이기 때문에 중복으로 실행이 불가능하다.

그래서 이것을 회피하려면 어플리케이션 마다 각각 포트번호를 달리주면 된다.

(한번에 한개씩 돌리면 상관없다)

application.properties 파일에 사용할 포트를 추가한다.

server.port=8090

앞으로 나는 해당 강의에서 듣는 port번호는 8090 이다.

(CMD창으로 켜서 종료 시키는 방법도 있으나, 내 상황에서는 종료가 되지않아 포트번호 변경을 해주었다.)