본문 바로가기

[개발] Programming/Java21

자바 환경변수 설정하는 방법 (윈도우 기준) 자바 환경변수 설정하는 방법 자바 개발자들이 필수로 하는 자바 환경 변수 잡아주는 방법을 공유드립니다. 참고로 해당 글은 윈도우 운영체제 기준으로 작성하였습니다. 컴퓨터에 자바 환경변수가 지정되어 있는지는 cmd에 명령어를 입력하여 알 수 있습니다. > java -version 잡혀있는 환경변수가 없다면 아래와 같이 문구가 출력됩니다. " 'java'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. " '내 피씨' 또는 컴퓨터를 마우스 우클릭하여 '속성'을 실행합니다. 윈도우 버전에 따라 다르지만, 11 기준으로는 아래와 같이 창이 뜹니다. 윈도우 10 이하는 UI는 다르지만, '고급 시스템 설정'은 동일하게 있습니다. 팝업이 뜨면 하단에 '환경 변수'를 클릭하면 됩.. 2023. 7. 21.
자바 컴파일 커맨드로 하는 방법 (윈도우 command javac) 윈도우 자바 컴파일 개발하다 보면 서버에서 직접 자바 파일을 컴파일할 때가 가끔 있습니다. 이때 javac라는 명어를 통해 간단하게 컴파일할 수 있는 방법을 소개하겠습니다. (저도 가끔 옵션을 까먹을 때가 있어 기록하게 됐습니다ㅎㅎ) 자바 컴파일 하는 방법 윈도우 서버를 사용하는 경우 먼저 command 창을 열어야 합니다. 그다음 자바 파일이 있는 경로로 이동해야 합니다. 기본 컴파일은 아래와 같이 할 수 있는데, javac '자바 파일 경로'/'자바 파일 명' javac D:/workspace/Main.java // 사용 예시 라이브러리 + 자바 컴파일 하는 방법 라이브러리가 없어 컴파일이 안될 경우가 있습니다. 이럴 땐 -cp 옵션을 추가하여 라이브러리 경로도 같이 입력해 주면 됩니다. javac .. 2023. 1. 25.
자바 try catch에 finally 사용하는 이유 (익센션 처리) 자바 try catch > Finally 사용 이유 자바로 구현된 시스템을 운영하다 보면 예상치 못한 익셉션이 종종 발생하다. 이때 리소스 관리나 프로그램을 안전하게 구성하기 위해 finally 라는 기능을 흔히 사용하게 된다. finally는 익셉션이 발생하더라도 무조건 실행되는 구조라 특히 리소스를 반환할 때 활용하기 적합하다. 자바 Finally 사용 방법 finally는 항상 try catch 문과 함께 사용한다. try catch는 예상치 못한 익셉션에 대응하기 위해 사용하는데, finally는 어떠한 try catch문에 걸리더라도 무조건 마지막에 실행된다. 아래와 같은 예외처리 문이 있다고 가정하자. 익셉션의 종류에 해당하는 catch 문에서 걸리게 되고, 해당 위치에 구현된 내용이 실행될 .. 2022. 6. 8.
자바 문자열이 포함되어 있는지 확인하는 함수 - contains vs equal 자바 문자열 비교 함수 contains Java에서 특정 문자 또는 문자열이 대상에 포함되어 있는지 쉽게 비교하는 방법이 있다. 바로 문자열 비교 함수인 contains()를 이용하는 방법이다. 만약 문자열이 서로 100% 일치하는 거면 equals() 함수를 사용할 수도 있는데, 각각 사용 예를 소개한다. 01 자바 contains 함수 사용 방법 : "문자열A".contains("문자열B") contains 함수는 문자열이 서로 100% 일치하지 않더라도 포함되기만 하면 true가 리턴된다. 결과가 true/false 형태이기에 별도의 작업 없이 바로 if 문에 사용하기에 적합하다. 예를 들면 아래와 같이 사용할 수 있다. 1 2 3 4 5 6 7 8 9 if("냉면 라면 칼국수".contains(".. 2021. 8. 28.
자바 엑셀 파일 읽을 때 오류 - java.lang.NoSuchFieldError, java.lang.NoClassDefFoundError 등등 자바 NoSuchFieldError 자바에서 엑셀을 읽을 수 있는 XSSFWorkbook 객체를 사용하다 보면 라이브러리를 추가해야 되는데, 이때 라이브러리 버전이 안 맞으면 수많은 class not found 오류가 발생합니다. 그래서 제가 직면했던 오류와 지금 사용하는 라이브러리 버전을 공유하겠습니다. 연관 오류 종류 java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Object;)V java.lang.NoClassDefFo.. 2021. 6. 10.
com.ibatis.common.xml.NodeletException: Error parsing XML 오류해결 방법 Error parsing XML 오류의 원인은 ibatis 쿼리문 안에 특수 문자가 포함되어 있기 때문이다. > 는 > SELECT * FROM dual WHERE a > b -- 원래는 a > b 방법2. 로 쿼리문 감싸주기 개인적으로는 선호하는 방법으로 방법1 처럼 치환하면 가독성이 떨어지는 단점이 있다. SELECT * FROM dual WHERE a > b ]]> 끝~! 2020. 12. 7.
톰캣 세션 수 설정하는 방법 - maxActiveSessions maxActiveSessions 세션 설정 서비스를 운영하다 보면 서버나 디비 자원이 풍족하지 않을 때도 있습니다. 이때 적절하게 세션 수를 설정해주는 것도 자원을 늘리지 않고 서비스를 유지할 수 있는 하나의 방법입니다. 디비나 서버 자원이 100% 찍고 행 걸려서 서비스가 다운되는 것보다는 세션 수를 제한하는 게 좋겠죠? 윈도우 서버의 경우 초간단하게 iis 설정으로 서버 재기동 이 필요 없지만, 리눅스나 윈도우 서버에서 톰캣으로 서비스를 돌리는 경우 context 파일에 설정을 해주어야 합니다. 방법은 톰캣 디렉토리 > conf > context.xml 파일 수정 파일 내부에 아래 소스 한 줄만 추가해주면 끝~! 100은 최대 100개의 세션을 허용한다는 의미이며, 이 수를 넘어가면 익셉션이 발생하고.. 2020. 9. 29.
자바 실행 시간(시간 차이) 구하기 - currentTimeMillis() 자바에서 currentTimeMillis() 함수를 이용하면 간단하게 시간 차이를 구할 수 있다. 해당 메소드는 system 클래스에 포함되어 있어 별도로 선언할 건 없다. 프로그램이 시작하는 시점에 실행하고 종료 시점에 실행해서 각각의 차를 구하면 된다. 함수: System.currentTimeMillis(); 예제 소스) 1. 시작 시점에 시간을 밀리 세컨드로 측정하고 - startTime 2. 5초간 실행했다고 가정하고 3. 종료 시점에 시간을 밀리 세컨드로 측정하고 - startTime 4. 마지막에 경과 시간을 미리 세컨드와 초로 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 long startTime = System.currentTimeMillis(); try { // 5초간 지연.. 2020. 4. 23.
자바 String, StringBuffer, StringBuilder 차이 점 String, StringBuffer, StringBuilder 문자열을 저장하기 위한 클래스 3가지. 나오는 결과물은 동일하나 완전 다른 특성을 갖는다. 별거 아닌 것 같은데 정신력이 흐려지면 헷갈린다. 그래서 이참에 셋을 비교 분석해본다. 차이점 String은 immutable 즉 불변 객체이다. 선언하면 저장된 문자열을 가공해도 여전히 동일한 공간이 할당되어 있다. 소스로 예를 들면 스트링 타입에 값을 선언하면 해당 사이즈로 메모리에 할당이 된다. String tmp = "test string"; 데이터를 바꾸면 Heap 메모리 내 String pool에 새로 공간을 할당하게 된다. tmp + " adding a new string"; 기존 객체는 null로 초기화해주기 전까지는 메모리를 차지하고 .. 2020. 4. 7.