warning: BASE64Decoder

컴퓨터 2022. 8. 17. 16:04

우연히 잘알지도 못하는 java쪽 프로그램을 수정하고 컴파일하다 아래와 같은 경고를 받았다.

 

 

warning: BASE64Decoder is internal proprietary API and may be removed in a future release
import sun.misc.BASE64Decoder;
               ^

BASE64Decoder는 내부 API이며 앞으로 없어질지도 모른다는 경고이다.

이전부터 사용하던 코드라 별 생각없이 진행했는데 원하는 결과를 받지 못했고 확인결과 이 API에서 문제를 발생시켰다.

경고마냥 없어졌는지도 모른다.

검색을 해보니 java버전을 낮추면 사용가능하다는 조삼모사식 처방전만 널려있다.

그렇게 하고 싶다면 굳이 말리지는 않겠지만 원인이 있으면 해결하는 것이 코더의 기본 덕목 아닌가.

조금 더 검색해보니 대처할 수 있는 방법이 있다.

 

0. 원래 사용하던 소스

import sun.misc.BASE64Decoder;
...
    public static byte[] decode (String encrypted) throws Exception {
        return new BASE64Decoder ().decodeBuffer (normalText);
    }

 

1. 내부 API 사용하기

경고에 써 있듯 java8부터는 Base64가 내부에 포함되었다고 한다.

import java.util.Base64;
import java.util.Base64.Decoder;
import java.util.Base64.Encoder;
...
    public static byte[] decode (String encrypted) throws Exception {
        return Base64.getDecoder ().decode (encrypted.getBytes ());
    }

 

2. 오픈 소스 사용하기

apache그룹에서 제공하는 API이다.

import org.apache.commons.codec.binary.Base64;
...
    public static byte[] decode (String encrypted) throws Exception {
        return Base64.decodeBase64 (encrypted.getBytes ());
    }

 

임시 땜빵도 좋지만 근본적인 원인을 찾고 해결하는게 더 좋지 않을까한다.

아무리 copy & paste에 익숙해 있어도 마음만은 프로그래머이니까.

 

P.S. : java는 잘 모르니 질문을 올려도 이해를 못하니 java 전문가에게 물어보시길...

'컴퓨터' 카테고리의 다른 글

PlatformIO in VSCode error  (0) 2023.07.27
node.js에서 java 호출하기  (0) 2022.03.15
MacOS FileZilla 대기파일 삭제  (0) 2022.01.12
저항값 보기  (0) 2019.09.20
XPlanet의 추억  (1) 2019.04.06
Posted by codebank
,