TIL

[TIL] 서버에서 배포 시에 실패 Exit 뜰 때와 jdk버전차이 확인하기

봄봄로그 2023. 7. 13. 22:33

흠흠 잘 메모해둔 덕에 금방 문제를 찾고 해결했다. 제법 멋져요

 

서버에서 수동으로 배포하는데 또 에러가 났다. 학습능력이 있는 인간이라면 배운데로 해야지요? (참고 - https://daretobe.tistory.com/12)

기동 후 exit

nohup 명령어 없이 java 로 기동

[tomcat@was1 12301]$ java -jar -Dspring.profiles.active=profile_Name /was/fileName.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/sanha/SpringBootStarter has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)

흠 그랬더니 이런 에러가 났다.

 

이 에러는 배포하려는 서버의 JDK버전과 배포하려는 jar파일의 JDK 버전이 맞지 않아서 생긴 에러였다.

  • 배포하려는 서버: 1.8
  • 배포하려는 파일 : jdk11로 compile된 파일

해결 : 서버에 필요한 버전인 jdk 11버전이 깔려있는지 보고 경로를 맞춰준다.

명령어

  • 기존 : nohup java -jar -Dspring.profiles.active=profileName /was/fileName.jar 1> /dev/null 2>&1 & 변경 : nohup /was/jdk-11/bin/java -jar -Dspring.profiles.active=profileName /was/fileName.jar 1> /dev/null 2>&1 &
  • 앞에 java 경로를 추가한다.

정상적으로 기동이 된 것을 볼 수 있다!!

2023-07-13 13:10:46 [main] INFO  com.SpringBootStarter - Starting SpringBootStarter using Java 11 on was1 with PID 142893 (/was/fileName.jar started by tomcat in /was)
2023-07-13 13:10:46 [main] INFO  com.SpringBootStarter - The following 4 profiles are active: "config1", "config2", "config13", "config14"
2023-07-13 13:10:51 [main] INFO  com.SpringBootStarter - Started SpringBootStarter in 6.835 seconds (JVM running for 7.557)