Java 8

[Maven] java.lang.IllegalStateException: Unable to load cache item

현상Ubuntu 서버에서 maven을 설치하여 Java 애플리케이션을 빌드하던 중 아래와 같은 에러가 발생하면서 실패했다.[ERROR] Error executing Maven.[ERROR] java.lang.IllegalStateException: Unable to load cache item[ERROR] Caused by: Unable to load cache item[ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper[ERROR] Caused by: Exception com.google.in..

Java 2024.06.27

[Java] 가변 인자 (varargs)

가변 인자 (Variable argument) 매개변수의 개수를 동적으로 지정하는 기능 JDK 1.5부터 추가되었으며, printf()가 가변 인자를 사용한 대표적인 메서드라고 할 수 있다. 가변 인자 기능이 없던 JDK 1.4 이하의 버전에서는 컬렉션 또는 배열을 이용해 여러 개의 인수를 처리했다. 컬렉션/베열 사용 예시 import java.util.Vector; public class main { public static void main(String args[]) { String[] str = {"a", "b", "c"}; Vector v = new Vector(); v.add("A"); v.add("B"); v.add("C"); print_val(str); print_val(v); } stati..

Java 2021.10.16

[Enum] 열거 타입

열거 타입(Enumeration type) 관련이 있는 상수의 집합 enum은 enumeration이라는 셈, 계산, 열거, 목록이라는 뜻의 영단어의 앞부분을 딴 예약어다. Java 1.5 이상부터 지원한다. enum을 사용하면 비교 시 값뿐만 아니라 타입까지 비교가 가능하며, 상수값이 재정의되더라도 재컴파일할 필요가 없다는 장점이 있다. 정의 클래스 정의하듯이 정의한다. enum NAME { VAL1, VAL2, VAL3 } // 예시 enum STATUS { START, RUNNING, STOP, TERMINATE } 열거형 변수 선언 및 초기화 마찬가지로 클래스 사용하듯이 사용한다. // 선언 NAME name; // 상수 접근 NAME.VAL1 // 예시 STATUS status = STATUS...

Java 2021.09.23

Overloading / Overriding

다형성 (polymorphism) 하나의 객체가 여러 가지 타입을 가질 수 있는 것 객체 지향 프로그래밍을 구성하는 특징 중 하나다. Overloading / Overriding은 Java의 다형성을 지원하는 방법이다. 각 개념은 아래와 같다. Overloading 사전적으로 '초과로 적재하다'라는 의미이다. Java에서는 클래스 내에 같은 이름의 메서드를 여러 개 선언하는 것을 의미하며, 매개변수의 타입, 개수, 순서 중 하나가 달라야 한다. 매개변수가 동일한 경우에는 반환형이 달라도 오버로딩되지 않는다. 하나의 함수가 하나의 기능을 구현해야 하는 C와 달리, 하나의 메소드명으로 여러 기능을 구현한다. 예시 print문을 오버로딩한 클래스다. public class Overloading { String..

Java 2021.09.22

[File] getPath() / getAbsolutePath() / getCanonicalPath()

Java에서는 File 클래스를 이용해 파일과 디렉터리를 다룰 수 있다. 이 글에는 File 객체의 경로를 반환하는 세 가지 함수의 차이점을 정리해둔다. getPath() 파일 객체의 경로를 반환한다. 여기서 경로란 파일 객체 생성 시 전달된 경로를 뜻한다. import java.io.File; import java.io.IOException; public class main { public static void main(String args[]) throws IOException { String dir = "./src"; String file_path = "main.java"; File file = new File(dir, file_path); if (file.exists()) System.out.pr..

Java 2021.09.21

[maven] 디렉터리 구조

maven 프로젝트의 디렉터리 구조에 대해 정리해둔다. 디렉터리 구조 Project/[Project Name] ├ src │ ├ main │ │ ├─ java │ │ └─ resources │ │ │ └ test │ ├─ java │ └─ resources │ ├ target └ pom.xml 설명 src/main/java : java 소스 파일이 저장된 경로 src/test/java : java 테스트 파일이 저장된 경로 src/*/resources : properties, xml 등과 같은 설정 파일이 저장된 경로 target : war, jar와 같은 컴파일 결과 파일이 저장된 경로 pom.xml : maven 기본 설정 파일. 프로젝트 파일이라고도 하며, 프로젝트 root 경로에 위치하고 있다. ..

Java 2021.09.19

[maven] 개념

빌드 소스 코드를 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물 java 파일, .xml, .jpg, .properties 등을 JVM이나 WAS가 인식할 수 있는 구조로 패키징 하는 과정 또는 결과물 빌드 도구 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 프로그램으로, Maven, Gradle이 많이 사용된다. 라이브러리 추가, 라이브러리 버전 동기화 등 라이브러리 관리가 가능하다. Maven Java 프로젝트 관리 도구. 프로젝트의 전체적인 생명주기를 관리한다. pom.xml에 필요한 라이브러리를 정의하여 해당 라이브러리 뿐만 아니라 라이브러리 동작에 필요한, 즉 라이브러리가 의존하는 다른 라이브러리까지 관리한다. 공식 Maven 중앙 저장소 또는 ..

Java 2021.09.14

JAR - 압축/해제/디컴파일

JAR Java Archive 자바 클래스 파일과 클래스가 이용하는 리소스 및 메타데이터를 자바 플랫폼에 애플리케이션이나 라이브러리로 배포하기 위한 소프트웨어 패키지 파일 포맷 확장자는 .jar이며, 실제로는 zip 파일 포맷으로 이루어진 압축 파일이다. JDK에 포함된 jar 명령어를 이용해 jar 파일을 생성하거나 압축을 해제할 수 있다. jar 파일은 자바 런타임이 효율적으로 애플리케이션을 배포할 수 있는 수단이며, 요청 한 번으로 애플리케이션 전체를 다운로드할 수 있게 한다. 압축 jar -cvf # -c : 새 jar 패키지 파일 생성 # -v : 상세 정보 확인 # -f : jar 파일 이름 지정 PATH의 디렉터리를 FILENAME으로 압축한다. 압축 해제 반디집과 같은 일반 압축 해제 소프..

Java 2021.08.16
1