1. 서론회사 프로젝트를 진행하다 jar파일 내부의 class파일을 디컴파일 후 수정한 뒤, 다시 jar로 만들어야하는 일이 발생했다.디컴파일은 jd-gui프로그램으로 진행했고 디컴파일된 자바파일을 IDE에서 수정 후 다시 jar로 만들어야 했다.여러 자료를 찾아보았지만 전부 기존 META-INF 폴더 외에도 새로운 폴더가 생성되었으나 아래 명령어대로 진행하니 기존 폴더구조를 유지하면서 JAR파일을 생성할 수 있었다. 2. 명령어jar로만들폴더경로>jar -cvf output.jar *
서론회사 프로젝트를 진행하던 중 hwp파일을 파싱하여 내부 데이터를 처리해야할 일이 생겼다. 역시 한국 독자규격인 hwp답게 자료가 더럽게 없었다... 결국 gpt의 도움을 받아 파싱에 성공했다갓 gpt... 아래 순서대로 진행하면 된다. 1. 라이브러리 추가 org.apache.tika tika-parsers 1.28 xerces xercesImpl 2.12.1 위 두 라이브러리를 추가해준다.tika-parsers는 여러 문서에대한 파싱기능을 제공해주는 라이브러리이고xerces는 파싱 과정에서 필요한 라이브러리이다. 2. 소스코드private static void readHWPContents() { File file = new File("읽을 한글파일 경로"); ..
문제 Maven Project에서 log4j2 설정을 하다 Spring Boot의 기본 logback이 제거되지 않아 삽질을 오래 했다.. 문제는 application.properties에 명시해둔 log4j2.xml을 logback용으로 인식해 자꾸 구문 오류가 났다. application.properties logging.config=classpath:log4j2.xml 해결 열심히 구글링 하던 중 spring-boot-starter와 spring-boot-starter-web에서 모두 spring-boot-starter-logging을 제거하라는 글을 보았다. 나 같은 경우에는 pom.xml에 spring-boot-starter-web만 포함되어있었어서 spring-boot-starter도 추가해준..
발생 Gradle 8.7버전에서 lombok을 설정하던 중 위 오류가 발생하였다. 해결 lombok의 버전을 명시하지 않고 gradle build하려 했기 때문에 발생하였다. dependencies { implementation('org.projectlombok:lombok') annotationProcessor('org.projectlombok:lombok') } 버전을 명시해준 뒤 다시 build 한다. dependencies { implementation('org.projectlombok:lombok:1.18.22') annotationProcessor('org.projectlombok:lombok:1.18.22') }
개인 프로젝트를 진행하며 github에 repository를 만들고 열심히 커밋했지만 오늘 확인해보니 잔디가 하나도 심어지지 않고있었다..... 구글링한 결과 원인은 의외로 간단했다... 바로 Spring Git Configuration에 내 email을 작성하지 않은 것... 아래 순서대로 진행하면 잔디를 심을 수 있다. 1. github에 등록된 내 email 확인 1) github에 로그인하고 오른쪽 상단의 프로필 사진을 클릭해준다. 2) Settings로 들어가서 Emails탭에서 내 이메일을 확인해준다. 2. Spring git Configuration 수정 Window > Preferences > Git > Configuration을 찾아 들어가 User Settings에서 Add Entry를..
스프링에서 컴파일된 java파일을 추출하는 다양한 방법이 있지만, 대표적으로는 war파일을 생성하는 방법이 있다. 하지만 컴파일된 파일을 추출하기 위해 매번 war를 생성하는것은 시간도 오래걸리고 번거롭다. 오늘은 war파일 없이 Spring 내장 톰캣에서 class 파일을 추출하는 방법을 알아보자. 1. 서버는 실행 상태여야 한다. 실행중인 Apache Tomcat에서 class파일을 가져오는 방법이기 때문에 서버는 실행 상태여야 한다. 서버가 시작되지 않은 상태에서 아무리 파일을 추출해도 서버는 실행 이전 시점의 파일을 가지고 있기 때문이다. (최종 수정 후 서버를 종료했다면 상관없음!) 2. 프로젝트 경로로 이동한다. 프로젝트 우클릭 > properties > Location 옆 아이콘을 클릭해 소..