Category Archives: JAVA

java.util.concurrent.ConcurrentMap 의 특징 설명

By | 7월 13, 2011

– 출처 : http://tutorials.jenkov.com/java-util-concurrent/concurrentmap.html – The java.util.concurrent.ConcurrentMap interface represents a Map which is capable of handling concurrent access (puts and gets) to it. The ConcurrentMap has a few extra atomic methods in addition to the methods it inherits from its superinterface, java.util.Map. ConcurrentMap Implementations Since ConcurrentMap is an interface, you need to use one of its implementations in order to use it. The java.util.concurrent package contains the following… Read More »

이클립스(Eclipse)에서 정규식(Regex) 치환을 이용한 Find/Replace 예제

By | 6월 20, 2011

Case 1. import com.kt.api.ws.common.claim.biz.ClaimBiz; import com.kt.api.ws.common.claim.model.CancelOrder; import com.kt.api.ws.common.claim.service.ClaimService; 이 상황에서 import com.kt.api.ws.common.claim.biz.ClaimBiz; import com.kt.api.virtualserver.common.claim.model.CancelOrder; import com.kt.api.ws.common.claim.service.ClaimService; 이렇게 바꾸고 싶었다. 그런데 그냥 .ws.를 .virtualserver.로 바꾸자니 .model.이 아닌 다른 부분에도 영향이 가기 때문에 정규식 치환을 생각하게 되었다. 그래서 다음과 같이 이클립스의 Find/Replace 를 셋팅해 놓고 Replace All을 하니 깔끔하게 해결되었다. (Find/Replace창의 Regular expressions에 체크된 상태여야 함) Find:                       … Read More »

Windows에서 java.io.File.renameTo() 메서드가 실패하는 경우에 대하여

By | 6월 2, 2011

Windows 환경에서 java.io.File.renameTo()를 사용하여 파일을 rename 하려고 할때, 아무 이유 없이 랜덤하게 실패하는 경우가 종종 있었다. 이 renameTo() 메서드는 Exception 도 발생시키지 않고 단지 결과값을 false로 반환할 뿐이어서 난감한 상황이었다. 그래서 구글링을 해 본 결과 다음과 같은 경우에 이런 현상이 발생할 수 있다는 의견을 얻을 수 있었다. 1. A file handle is inherited by a… Read More »

[펌글] File.mkdir()과 File.mkdirs()의 차이점

By | 6월 2, 2011

– 출처 : http://froginpot.tistory.com/51 – Java API에서는 디렉토리를 생성하기 위해, File.mkdir()과 File.mkdirs(), 두 개의 API가 제공됩니다. 위 두 개의 API는 모두 디렉토리를 생성하는 기능을 하지만, 세부적으로는 약간 틀린 기능을 합니다. * File.mkdir() : 만들고자 하는 디렉토리의 상위 디렉토리가 존재하지 않을 경우, 생성 불가 C:\base\want want 디렉토리를 만들고자 하는데, base 디렉토리가 없는 경우, 생성 불가 *… Read More »

자바 파일 사이즈, 이미지 사이즈(width, height) 얻기

By | 6월 2, 2011

– 출처 : http://blog.naver.com/devstory/130033912192 – * 자바 파일 사이즈    – java.io.File.length() 메서드 사용 * 자바 이미지 사이즈 (width, height) import java.io.File; import java.awt.Image; import javax.swing.ImageIcon; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; public class Test {     public static void main(String[] args) {            // 방법1           Image img… Read More »

리눅스(or 유닉스, linux, unix)에서 자바(java) 실행(command line execute) 예제

By | 11월 4, 2021

실행 예제 java -cp .:/jarPathA/*:/jarPathB/abc.jar com.itpsolver.Test 설명 jar 파일들에 대한 wildcard 처리는 오직 ‘/*’ 패턴만 가능하다. maven으로 jar를 빌드해서 -jar 명령으로 실행했다가 classpath를 찾지 못하는 문제가 발생해서 조사해 봤더니, -jar 명령으로 실행할 경우 모든 classpath 파라미터가 무시되기 때문에, jar 패키지 안에 모든 클래스가 담겨 있어야 한다고 한다. (아웅..또 삽질했다..) 결국 -jar 옵션으로 실행하는 것은 현실적으로… Read More »

java.net.UnknownHostException 에 관한 일화

By | 2월 25, 2011

* 에피소드    – 증상         apache웹서버, tomcat WAS 환경에서 서버 부팅시 쿼리를 수행하는 부분이 있었는데,         불규칙하게 java.net.UnknownHostException: TVODB2 을 내며 서버 부팅이 중단되곤 하였다.    – 해결 (WAS의 호스트파일에 TVODB2 라는 컴퓨터이름을 추가해 주었다.)           => /etc/host 에 다음항목 추가     xxx.xxx.xxx.xxx      db.domain TVODB2         … Read More »

Java CharacterSet Endcoding (유니코드 및 UTF-8 설명 포함)

By | 1월 31, 2011

– 출처 : http://kalpa730.blog.me/140118582507 – 1. new String(text.getBytes(fromEncode), ToEncode) 구문은 잊어주세요. 이 방식은 초창기 시절 tomcat 같은데서 HTTP로 받은 파라메터의 인코딩이 무조건 ISO-8859로 강제 인코딩 되서 들어오는 문제가있었는데, 그걸 잡으려고 다시 강제로 깨진 문자열을 한글로 바꾸는 거였습니다만.  일단 제대로 Java 상에서 인코딩 된 경우.( 위 예제에서는 TEXT=”한글” 이라고 제대로 들어가 있음) 전혀 사용해서는 안되는 구문입니다.  … Read More »

[링크] JSON 직렬화(마샬링) 라이브러리 Jackson 관련 정보

By | 1월 29, 2011

Jackson Tutorial -1 Jackson Tutorial -2 * Jackson 추가정보  – JSON <=> Object 로 변환하는 가장 빠른 프로세서라고 함.  – http://jackson.codehaus.org/  – Apache Wink는 사실상 JAX-RS 1.0 스펙의 구현물 중 하나로 빠르게 자리 잡고 있다. JSON 마샬링과    언마샬링을 위해 표준 Apache Wink 배포판에 포함된 JSON.org 및 Jettison과 같은 제공자는    리턴 유형이 제한되어 있으며 배열을 표현하는 데… Read More »

[JAVA] response.addHeader() 와 response.setHeader() 의 차이

By | 1월 27, 2011

1. 기존 헤더에 추가하려는 것과 같은 키값이 없을 때에는 addHeader()나 setHeader()나 동일하게 동작한다. 2. 기존 헤더에 추가려하려는 것과 같은 키값이 존재할 경우.     – addHeader() : 그 키에 해당하는 값을 하나 더 추가한다.     – setHeader() : 새롭게 설정한 값으로 덮어 쓴다. 일단 이렇게 정리하기는 했지만 완벽히 위와 같이 동작하지는 않는다. 꼼꼼한 디버깅이 필요하다.