gradle build 특정 jdk 버전으로

상황

  • 내 컴퓨터에는 여러 가지 자바 버전이 설치되어있다. (jdk1.8.0_281, jdk-13.0.2)
  • 자바 버전 1.8에서 동작하는 runable jar 파일을 만드는데, 1.8에서 실행이 안되었다
  • 그래들 프로젝트이다
  • 분명 프로젝트 세팅은 1.8로 되어있는데 막상 빌드 결과물 jar이 1.8에서 실행이 안되었다
  • 그런데 13에서 실행이 되는 것을 확인하고, 빌드가 다른 자바 버전으로 되는 것을 확인했다
error message
1
Error: A JNI Error has occurred, ... has been compiled by a more recent version of the java runtime

해결

1
gradlew build -Dorg.gradle.java.home="C:\Program Files\Java\jdk1.8.0_281"
  • 빌드할 때 자바 홈을 명시해 주었더니 해결되었다

참고

gradle project 에서 runnable jar 생성하기

  • 일반 자바 프로젝트처럼 Export > Runnable JAR file로 jar을 만들게 되면 생성된 jar파일의 용량이 매우 작은 것을 확인할 수 있다
  • 내가 추가한 외부 라이브러리들이 전부 빠져서 동작하지 않는다
  • gradle project에서는 어떤 방식으로 runable jar을 만들어야 할까?

build.gradle 수정하기

build.gradle
1
2
3
4
5
6
7
8
9
10
jar {
manifest {
attributes 'Main-Class': 'tmp.gradle.project.Main'
}
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}

  • jar { … } 에 해당하는 부분을 위처럼 새로이 추가해준다
  • attributes 'Main-Class': 'tmp.gradle.project.Main' 여기에는 자신의 메인 클래스를 지정하면 된다

jar파일 생성하기

terminal
1
2
cd {gradle project rootpath}
gradle jar
  • 자신의 그래들 프로젝트 경로에서 cmd를 켜주고
  • gradle jar 명령을 실행한다

jar파일 확인하기

  • build/libs 디렉터리에 가보면 jar파일이 생성돼있음을 확인할 수 있다
terminal
1
2
cd build\libs
java -jar {jar파일명}
  • 마지막으로 잘 실행되는지 확인한다

gradle로 외부라이브러리 설치하기

원하는 라이브러리 명 + gadle 키워드로 구글링한다

  • 나는 json-simple 을 받아보겠다

카피

  • 그래들 탭인지 잘 확인하고 카피한다
  • build.gradle 파일로와서 dependencies에 추가하고 저정한다

Gradle Project Refresh

  • 끝!

이클립스에서 gradle 프로젝트 생성하기

  • 나는 C > C++ > java > js 순으로 배웠다
  • 요즘은 쭉 nodejs에서 npm, package.json 을 통해 모듈을 쉽게 설치하고 관리하였다
  • 오랜만에 java로 돌아오니까 외부 라이브러리를 임포트 할 때 불편하게 느껴졌다
  • gradle의 이론이 대해서는 자세히 모르지만,
  • 이전에 build.gradle파일을 통해 라이브러리를 설치한 기억이 있어서
  • gradle 프로젝트를 생성, 사용해보았다

gradle 설치

  • Windows에 Gradle 설치하기 by Jeongjin Kim 를 보고 따라 했다

  • https://gradle.org/releases/ 에 들어가서 garadle을 다운로드한다

  • Download: binary-only or complete 인데 나는 binary-only 를 다운로드하였다

  • .zip 파일로 받아지는데 적당한 위치에 압축을 풀어주고

  • 환경변수를 세팅한다

  • GRADLE_HOME : 그래들 디렉터리 경로 ex) C:\Tools\gradle-6.6.1

  • path : %GRADLE_HOME%\bin

  • 새롭게 cmd를 열고 gradle -v하여 잘 설치되었는지 확인한다

이클립스에 gradle 플러그인 설치 및 세팅

  • Help > Marketplace 로 들어가 gradle을 검색한다
  • 코끼리 모양의 아이콘을 가진 Buildship Gradle Integration 3.0 을 인스톨했다
  • 이클립스 재시작

  • Window > Preferences 로 들어간다
  • gradle을 검색하고 gradle 경로를 지정해준다
  • 여기서 C:\Tools\gradle-6.6.1 환경변수 설정에서 GRADLE_HOME으로 지정했던 경로를 적어준다

  • 이제 그래들 프로젝트를 생성해보자
  • File > new > other 로 들어가 gradle을 검색한다
  • gradle project를 선택하고 다음으로 넘어가면 위 화면이 나온다
  • next

  • Project name 을 적어준다
  • next

  • next

  • 조금 기다리면 된다
  • Finish 버튼이 활성화 되면 클릭

  • build.gradle을 우클릭하고 Gradle > Refesh Gradle Project 를 누르면 외부 라이브러리들이 설치된다
  • 설치된 라이브러리들은 이클립스 익스플로러에서 Project and External Dependencies에서 확인할 수 있다

참고