Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter

sts3, jdk17로 Spring Legacy Project 해서 생성하려니 위와 같은 창이 떴다

 

1. jdk11 설치 https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html

 - 운영체제에 맞는 파일을 선택하면 동의 → 로그인 순서로 화면이 나오는데 로그인을 하면 다운로드가 시작됩니다.

 

2. sts가 설치된 경로를 들어가 sts.ini을 찾고 해당 파일에

-vm
C:\Program Files\Java\jdk-11\bin\javaw.exe

새로 설치한 jdk 경로로 수정하였더니 정상적으로 프로젝트가 생성되었다.

 

-vm
C:\Program Files\Java\jdk-17\bin\javaw.exe

기존에는 위와 같이 jdk17 경로가 있었음

%s : 문자열 (string)

%d : 정수형 (int)

%n : 줄바꿈

%f : 실수형(float)

%t : date, time

%o : 8진수

%x : 16진수

%b : boolean (true, false)

%e : 지수

 

 

더보기

C언어 출력타입

 

%d : 10진수(정수형, int)

%f : 실수형(float)

%e : 지수형

%o : 8진수

%x : 16진수

%u : 부호없는 10진수 (unsigned int)

%g : 실수형 자동 출력

%p : 포인터의 주소

%c : 하나의 문자로 출력

%s : 문자열 (string)

정보처리기능사 필기 대비로 정리, 아래의 노션 링크에서 보면 좀 더 가독성 있게 볼 수 있습니다.

https://vigorous-chipmunk-cc6.notion.site/0250ab9401954bb5ae39efbcb7ad4c21?pvs=4 

 

  • 배열(array) : 같은 타입의 변수들로 이루어진 유한 집합
    • 요소(element) : 배열을 구성하는 각각의 값
    • 인덱스(index) : 배열에서 위치를 가리키는 숫자, 인덱스는 0부터 시작!
  • 배열은 선언 형식에 따라 1차원, 2차원, 다차원 배열로 선언할 수 있으나 2차원 배열까지 많이 사용됨

 

배열 선언시

  • 미리 공간의 갯수(길이)를 지정해야 함 →고정되어있게 설계되었으므로 미지정시 컴파일 오류 발생
  • 배열의 타입 지정, 배열에 저장할 데이터의 자료형 명시
  • 생성한 배열은 인덱스 번호를 통해 접근 가능하다

 

  • 기본문법
    • 선언
      • 타입[] 배열이름; →될 수 있으면 이 방법을 사용
      • 타입 []배열이름;
      • 타입 배열이름[];
    • 초기화
      • 배열이름 = new 타입[배열길이];
  • 배열 선언시에는 메모리를 차지하지 않고 초기화로 사이즈를 정해주어야 메모리를 차지함
public static void main(String[] args) {
	// 배열 선언 예제 (int 대신 다른 타입으로도 선언할 수 있다)
	int[] score1;
	int []score2;
	int score3[];

	// 배열 초기화
	score1 = new int[3]; 
		// score1 배열을 사이즈 3인 배열로 초기화
		// int의 경우 기본값 0으로 세팅됨
 }

배열 선언과 초기화를 동시에 할 수도 있다.

  • 타입[] 배열이름 = new 타입[배열길이];
public static void main(String[] args) {
	// 배열 선언 + 초기화 동시에
	int[] score1 = new int[10];
	int []score2 = new int[20];
	int score3[] = new int[30];
	// 사이즈는 각각 10, 20, 30으로 초기화되었으며
	// 인덱스는 0부터 시작하므로 각각의 사이즈에 -1 (0~9, 0~19···)
	// 사이즈만 선언하였고 값은 모두 0으로 세팅됨
}

선언과 사이즈 지정, 값 지정을 동시에 할 수도 있다.

  • 타입[] 배열이름 = {값1, 값2, 값3, ···}
public static void main(String[] args) {
	// 배열 선언 + 값 세팅하기
	int[] score4 = {1, 2, 3, 4, 5}; // 사이즈는 5, 인덱스 범위는 0~4.
	int[] score5 = {0, 0 ,0} // int[] score5 = new int[2]; 와 같다.
}
public static void main(String[] args) {
	// for문을 활용해 배열에 값 넣어주기
	int[] score = new int[5];

	for(int i=0; i<score.length;i++) {
		number[i] = i*10;
		}
}

 

배열 출력

 

배열 관련 문제 풀기

pubilc class Test {
	public static void main(String[] args) [
		int i;
		int num[] = {2, 1, 3, 7, 4, 9};
		int numb[] = new int[10];
			
		for (i=0; i<num.length; i++)
			numb[i] = num[i];
		for (i=0; i<numb.length; i++)
			System.out.printf("%d", numb[i]);
	}
}

문제 풀이

  1. 배열 num을 선언 및 초기값 지정 size = 6, index = 0~5.
  2. 배열 numb를 선언 size = 10, index = 0~9.
  3. 반복문 조건 ⇒ i는 0부터 시작하며, num.length보다 작고, 1씩 증가한다.
    1. numb의 i번째 값은 num의 i번째 값과 같다.
    2. i가 num.length 값과 같으면 반복문 중지.
  4. 반복문 조건 ⇒ i는 0부터 시작하며, numb.length보다 작고, 1씩 증가한다
    1. numb의 i번째 값을 반복문으로 출력
    2. i가 numb.length 값과 같으면 반복문 중지.

*.length는 배열 값의 갯수(길이를) 출력해주는 함수임

정답 : 213749000

  • numb 초기화시에 모든 값이 자동으로 0이 됨
  • 첫번째 for문에서 num.length인 6보다 작은 수로 반복하므로 numb의 인덱스 0번째부터 5번째까지 값을 넣어주면 numb[] = {2, 1, 3, 7, 4, 9, 0, 0, 0}가 된다
  • numb의 i번째값을 numb.length인 10보다 작게 출력하는 마지막 반복문을 수행하면 213749000이 출력됨
오랜만에 전에 했던 프로젝트를 열려니 작동이 안되었다

캡쳐를 못했는데  ClassNotFound가 뜨면서 Application.java를 찾을 수 없다고 떠서 해당 파일에 들어가보았더니 spring import부분과 어노테이션 부분에 빨간 줄이 있는 걸로 보아 스프링이 안찾아지는 걸로 추정.

사용툴: Eclipse EE

build.gradle 오른쪽 마우스 - Gradle - Refresh Gradle Project 해주었더니 빨간 줄이 사라지고 정상작동 되었다

콘솔 창에서 BUILD SUCCESSFUL이 뜰 때까지 기다린 후 Application.java에 들어가 확인

 

툴이 다르지만 https://kth990303.tistory.com/235 해당 링크 참고하면 도움이 될 것 같아 첨부!

xml 파일은 Open with..를 통해 해결하였음
jsp 형식으로 된 파일이 열리지 않으며 Eclipse 열 때 에러창이 뜸

사용 툴: Eclipse EE

  1. Open with로 Editor 지정해서 열기 -실패
  2. Project Clean -실패

 

이클립스 시작시에 아래 창이 뜨는 걸 대수롭지 않게 여겼는데 해결하고 나니 jsp 파일도 정상적으로 열렸다

Details>> An internal error occurred during: &ldquo;SSE core task scheduler startup&rdquo;. com/ibm/icu/util/StringTokenizer

 

Help - About Eclipse IDE - 아래의 Intallation Details 클릭 - Plug-ins탭에서 ICU4J 검색

Eclipse Orbit 버전이 Unicode, Inc. 보다 오래된 경우 Eclipse Orbit 을 업데이트 할 것

저는 업데이트 해놓은 상태라 Eclipse Orbit이 더 최신버전입니다 참고하세요!

Help - Install New Software - Work with에 orbit 검색(https://download.eclipse.org/tools/orbit/downloads/latest-R/) - type filter text칸에 icu4j 검색 후 선택설치함

주의 ! 오른쪽 하단의 바가 사라질 때까지 이클립스 종료하지 말 것, 설치 완료시 Restart 창이 뜸

 

 

 

참고링크

1.  https://stackoverflow.com/questions/73817318/sse-core-task-scheduler-startup-problem-in-eclipse

2. 이클립스 오르빗 업데이트 하는 방법: https://help.eclipse.org/latest/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-127.htm

3. 최신버전 확인: https://download.eclipse.org/tools/orbit/downloads/

 

 

java.sql.SQLException: 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가)

 

구글링해도 다 안되고 내 것과 다른 것들만 있어서 build.gradle에 아래와 같이 추가해서 해결하였음 

# build.gradle

dependencies { 
    implementation group: 'com.oracle.ojdbc', name: 'orai18n', version: '19.3.0.0'
}

Eclipse 사용시에도 추가 후 Refresh Gradle Project

 

더보기 클릭시 이전에 시도해본 것들과 그외 참고할만한 링크가 나옵니다

 

사용 툴: Eclipse EE

롬복을 설치하려는데 왜인지 롬복 getter setter를 쓸 수 없어서 한참 헤맸다  

# build.gradle
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

build.gradle 입력 후 Refresh Gadle Project도 했고,

# HelloLombok

package com.mysite.newBoard;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
@Getter
# 위까지는 잘 import 됨

public class HelloLombok {

    private final String hello;
    private final int lombok;

    public static void main(String[] args) {
        HelloLombok helloLombok = new HelloLombok("헬로", 5);
        System.out.println(helloLombok.getHello());
        System.out.println(helloLombok.getLombok());
    }
}

코드에 오타가 난 건지 점프 투 스프링부트에서 복붙도 해봤다.


 

시도 1. Property - Java Build Path - Classpath - Add Externel JARs - lombok.jar를 추가

 > 결과는 달라진 게 없었다

 

시도2. Help - Install New Software - https://projectlombok.org/p2 검색 후 아래에 뜨는 Lombok 설치

 - 주의! 오른쪽 하단에 있는 바가 사라질 때까지 기다릴 것 설치 완료시 Restart 버튼이 뜬다

 > 여전히 달라진 게 없었다

 

위의 것들 모두 실패했고 내가 해결한 방법은 >

Eclipse SE도 같이 사용해야해서 Ecilpse EE 실행파일의 제목을 Eclipse EE.exe로 바꾸어놔서인지 lombok 설치시 원래 파일은 인식되지 않고 실행파일 외에 다른 eclipsec.exe 파일에 설치해버린 것이었다. (아래 사진 참고)

>>실행파일을 원래이름으로 바꾸고 설치 후 이클립스 다시 시작 및 컴퓨터 재부팅을 하였더니 실행되었다

 

+ jar 파일 열기: 파일이 있는 경로에 가서 java -jar lombok.jar (lombok.jar 부분에 jar 파일명 입력하면 됨

+ Recent posts