본문 바로가기
Computer Science/Errors

자바기반 .jar 파일이 실행되지 않을때

by Henry Cho 2025. 8. 5.

# 자바 버전

데이터 분석일을 하다 보면 가끔씩 아주 오래된 모델을 사용해야만 하는 일이 종종 생긴다. 아니면 오래된 모델을 다시 변환하더라도 해당 모델이 가진 기능이나 구조를 파악해야 하기 때문에 해당 프로그램을 돌려야 하는 일이 필요하다. 그중에 하나가 자바 기반으로 된. jar 파일인데, 이 파일의 경우 실행이 되지 않는 경우가 종종, 아니 자주 있는 편이다.

 

자바가 이미 설치되어있고 .jar 파일 자체에 문제가 없는데, 실행파일을 클릭했음에도 별다른 반응이 없다면 자바 버전이 너무 최신이어서 충돌이 발생했을 가능성이 있다. 최근 자바 버전의 경우 프로그램 자체의 보완이 강화되다 보니, 현재 버전의 기준에 맞지 않은 오래된 자바 기반의. jar 파일의 경우 이에 부합되지 않다 보니 실행이 안되고 강제 종료가 되는 것이다. 따라서 이를 실행시키기 위해서는 이전 버전의 자바, 예를 들면 자바 8을 재설치해주고 환경변수를 이전 버전의 자바에 맞춰줘야 한다.


# 강제로 실행하는 방법

특정 프로그램을 주기적으로 사용해야한다면 JDK 8이나 JDE를 설치하는 것을 권장하지만 일시적으로 오래된 프로그램을 실행시키고자 한다면 강제 실행 명령어로 실행이 가능하다. 명령어 뒤에 "Path" 경로를 입력해 주면 해당 경로에 존재하는. jar 파일이 실행되는 걸 확인할 수 있다. 다만 해당 방법은 강제로 파일을 실행하는 것이기 때문에 모든 기능이 작동하지 않는다. 특히 조건이 발생하는 지점의 경우 해당 기능이 작동되지 않는다.

 

이게 무슨 말이냐면, 프로그램 내에서 버튼 하나를 클릭해서 결과가 도출된다면 해당 기능은 문제없이 작동이 될 것이다. 다만 해당 버튼을 클릭하고 또 다른 선택지가 존재하는 경우에는 강제로 실행시킨 자바 환경에서 해당 프로그램 내의 그 다음 프로세스까지 작동이 되지 않는다. 따라서 프로그램을 빠르게 살펴보기 위해서 해당 강제 실행 명령어를 활용하는 것이지, 프로그램을 온전히 실행하기 위해서는 결국 이전 버전의 자바가 필요하다.


java --add-exports java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED -jar

# OpenJDK 8

내가 이번에 포스팅을 하면서 자바를 많이 안쓰고 있구나를 깨달았다. 내가 알기로 OpenJDK 자체에서 무료 자바를 배포하고 있었던 걸로 기억했는데, 이제는 여러 다른 조직이나 기관에서 OpenJDK를 배포하고 있었다. 워낙 오픈소스에 바이러스도 많고 돈을 벌기 위한 목적의 거지같이 붙잡고 놓아주지 않는 프로그램들이 많다 보니 유의하게 된다.

 

아무튼 OpenJDK는 자바에서 무료로 제공하는 이전 버전의 자바이다. 원래는 오라클 자체에서 배포해줬는데 이제는 자바 환경을 쓰는 여러 IT 기업들이 손잡고 해당 파일을 배포해 주는 서비스를 하고 있다. 결과적으로 다른 플랫폼을 사용하더라도 결국에 자바 프로그램을 실행시켜 보면 익숙한 OpenJDK 로고가 보인다. 왜냐하면 OpenJDK의 배포를 직접 하지는 않지만 결국 포장지를 뜯어보면 OpenJDK이기 때문이다.

 

당연히 OpenJDK.org 페이지는 존재한다. 나 같은 노인네들을 위해서 페이지를 남겨두었지만 아무래도 신식이 좋다고 이클립스에서 제공해주는 Adoptium 사이트에서 다운로드하는 게 간단하고 편했다. 아래에 두 링크를 모두 첨부해 뒀으니 마음에 드는 곳에서 OpenJDK를 설치해 주면 된다. 참고로 아래 두 사이트 말고도 OpenJDK를 배포해 주는 사이트는 여러 군데 있으니 (아마존 포함) 마음에 드는 곳에서 설치하면 된다.


 

https://openjdk.org/

 

OpenJDK

Learn about the key active Projects in the Community including Amber (high-productivity language features), Loom (lightweight concurrency), Panama (foreign functions and foreign data), Valhalla (primitive types and specialized generics), and, of course, th

openjdk.org

https://adoptium.net/

 

Adoptium

Eclipse Adoptium provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure.

adoptium.net


OpenJDK 설치가 이뤄지고 나면 이전 버전의 자바 프로그램이 문제없이 돌아가는 걸 확인할 수 있다. 이클립스 Adoptium에서 설치를 했다면 설치과정에서 환경변수 설정까지 물어보기 때문에 기존 자바와 충돌없이 바로 적용되어 사용할 수 있다.


 

728x90

댓글