1. 기존 Java 확인


CentOSJava를 설치하는 방법은 별로 어렵지 않습니다우선 기존에 자바가 설치되어 있는지 확인을 해보도록 합니다.

 

$ java -version


centos oracle java install


CentOS를 설치하면 자동으로 OpenJDK가 설치되어 있습니다어디에 설치되어있는지 확인해 봅니다.


$ which java


centos oracle java install


설치된 /usr/bin 폴더로 이동하여 확인해 봅니다.


centos oracle java install


alternatives가 보이는 걸로 봐서 rpm 파일이 설치된 것 같습니다.

새로 설치를 해야 하니 root 권한으로 명령어를 입력하여 기존 java의 이름을 변경합니다.


# mv /usr/bin/java /usr/bin/java_old


centos oracle java install


파일 명을 변경 하였다면 실행이 되지 않아야 하는데 확인해 볼까요?


centos oracle java install


기존에 설치된 Java는 실행이 되지 않으니 이제 다른 버전을 설치해도 될 것 같습니다.


 

2. Java 다운로드


 

신규로 설치할 파일을 oracle 사이트에서 java를 다운로드 받습니다. 

 

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html


centos oracle java install


Linux 운영체제에 맞는 파일 중 Linux x64 Compressed Archive 를 선택 합니다다운받으려면 오라클 계정에 로그인을 해야 합니다.  자주 방문해야 하니 계정을 하나 만들어 두는게 좋습니다.

 

 

3. 설치


 

다운받은 파일의 압축을 풀어줍니다.

$ tar -zvxf jdk-8u241-linux-x64.tar.gz

 

개인적으로 사용 하려는게 아니면 모두가 사용할 수 있도록 압축을 풀은 폴더를 이동해야 하고 이제부터는 root 권한으로 작업을 진행해야 합니다.  물론 이동하지 않고 사용해도 되지만 관리를 위해서는 좀더 범용적인 위치로 옮겨놓습니다.

 

# mv jdk1.8.0_241/ /usr/local/lib

 

설치는 압축을 풀어주는 것을 완료가 된것이고 모두가 사용할 수 있도록 환경 설정을 해주면 끝입니다환경설정 파일을 열고 필요한 사항을 추가해 줍니다.

 

vi /etc/profile

JAVA_HOME=/usr/local/lib/jdk1.8.0_241

JRE_HOME=$JAVA_HOME/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME

export JRE_HOME


centos oracle java install


추가한 설정이 적용 되도록 명령어를 입력 합니다.


# source /etc/profile

 

잘 적용 되었는지 버전을 확인해 봅니다.


centos oracle java install


이제 OpenJDK가 아닌 oracle java가 설치 되었습니다.



1. substring

 

문자열중 일부를 뽑아오거나 여러 Data를 하나의 문자열로 받아 다시 각 항목별로 나누어 분류하는데 많이 사용합니다중간에 구분자가 없는 경우에 사용합니다.  문자열이 길어지면 눈이 튀어나와 힘들죠.


substring의 정의는 다음과 같습니다.

public String substring(int beginIndex, int endIndex)

  beginIndex : 시작 index

  endIndex : 종료 index

 

사용시 주의 사항은 beginIndex0에서 시작하고 endIndex는 자르려는 글자 끝 index보다 1을 더해줘야 합니다.

 String str = “ABCDEFGHIJKL”;

문자열

A

B

C

D

E

F

G

H

I

J

K

L

Index

0

1

2

3

4

5

6

7

8

9

10

11

 

A부터 C까지만 잘라 오려면

String getStr1 = str.substring(0, 3);


D부터 K까지만 잘라 오려면

String getStr2 = str.substring(3, 11);

 

F부터 끝까지 가져오려면

String getStr3 = str.substring(5);


간단한 테스트 입니다.

        public static void subString() {

              

               String str = "ABCDEFGHIJKL";

              

               String getStr1 = str.substring(0, 3);

               String getStr2 = str.substring(3, 11);

               String getStr3 = str.substring(5);

              

               System.out.println("str.substring(0, 3) : "+ getStr1);

               System.out.println("str.substring(3, 11) : "+ getStr2);

               System.out.println("str.substring(5) : "+ getStr3);

              

        }


java substring split



2. split

 

substring과 같이 여러 Data를 구분자를 추가하여 하나의 문자열로 묶어서 수신한 후 다시 나누거나 문자열에 규칙적인 반복 문자가 있을 경우 이용하여 문자열을 나누어 배열화 하는 기능입니다중간에 꼭 규칙적인 문자가 있어야 가능하겠죠.

 

split의 정의는 다음과 같습니다.

public String[] split(String regex)

regex : 규칙적 어구

  

기호를 구분자로

 

String str1 = "A-B-CDEFG-HIJKL";

str1 문자열에는 “-“ 이 문자가 반복되어 구분자로 사용할 수 있습니다.

String getStr1[] = str1.split("-");

이렇게 하면 getStr1[] 배열에 문자열이 “-“으로 나뉘어져 들어가게 됩니다. 주민번호, 전화번호등에 가장 많이 사용하는 방법이죠.

 

String str1 = "A-B-CDEFG-HIJKL";

 

String getStr1[] = str1.split("-");

 

for(int i=0; i<getStr1.length;i++) {

        System.out.println("getStr1 ["+ i + "] : " + getStr1[i]);

}


java substring split



문자를 구분자로

 

String str2 = "ABTTCDETTFGHIJKTTL";

str2 문자열에는 “TT” 문자가 반복적으로 들어있어 구분자로 사용할 수 있습니다.

 

String getStr2[] = str2.split("TT");

이렇게 하면 “TT”로 구분된 문자가 getStr2[] 배열에 들어갑니다

 

String str2 = "ABTTCDETTFGHIJKTTL";

 

String getStr2[] = str2.split("TT");

 

for(int i=0; i<getStr2.length;i++) {

        System.out.println("getStr2 ["+ i + "] : " + getStr2[i]);

}


java substring split



특수문자를 구분자로

 

String str2 = "A|B|CDEFG|HIJKL";

str2는 특수문자 “|”가 중간에 구분자로 들어가 있습니다. 특수문자를 일반적인 문자처럼 구분자로 사용하게 되면 엉뚱한 결과가 나옵니다. 엉뚱하다기 보다는 그냥 글자를 하나씩 배열에 입력하고 끝나게 됩니다. 이런 경우는 두가지 방법으로 처리를 하는데 하나는 특수문자 앞에 “\\”를 써주거나 특수문자를 “[]”로 감싸줍니다.

 

        String str3 = "A|B|CDEFG|HIJKL";

              

//      String getStr3[] = str3.split("[|]");

// String getStr3[] = str3.split("[.]");

        String getStr3[] = str3.split("\\|");

       

        for(int i=0; i<getStr3.length;i++) {

               System.out.println("getStr3 ["+ i + "] : " + getStr3[i]);

        }


java substring split


- copy coding -


keytool을 이용하여 키를 생성할 때에는 java가 설치 되어 있어야 합니다자바를 설치하고 path가 잡혀있지 않다면 path를 잡아 주고 작업을 하면 편합니다여러 가지 이유로 인하여 java path 를 잡을 수 없는 경우에는 절대경로를 이용하여 keytool을 실행해 주면 됩니다저의 경우는 D:\Java\jdk1.8.0_131에 자바를 설치 하였고 path는 잡지 않고 있습니다. 그런 경우 아래처럼 명령을 실행해서 keytool을 사용 합니다. path를 잡았다면 D:\Java\jdk1.8.0_131\bin\ 는 생략하면 됩니다.

 

D:\Java\jdk1.8.0_131\bin\keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android


keytool


C:\>D:\Java\jdk1.8.0_131\bin\keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

keytool 오류: java.lang.Exception: 키 저장소 파일이 존재하지 않음: C:\Users\user\.android\debug.keystore

java.lang.Exception: 키 저장소 파일이 존재하지 않음: C:\Users\user\.android\debug.keystore

        at sun.security.tools.keytool.Main.doCommands(Main.java:745)

        at sun.security.tools.keytool.Main.run(Main.java:343)

        at sun.security.tools.keytool.Main.main(Main.java:336)


[키 저장소 파일이 존재하지 않음] 이라는 오류가 발생하였군요이런 경우는 간단하게 생성을 할 수 있도록 [-genkey] d옵션을 추가해 줍니다.

D:\Java\jdk1.8.0_131\bin\keytool -genkey -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

 

만일 생성시 이름, 국가, ,시를 입력하도록 물어보면 그냥 엔터키를 눌러도 된다.


keytool


C:\>D:\Java\jdk1.8.0_131\bin\keytool -genkey -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

별칭 이름: androiddebugkey

생성 날짜: 2019. 11. 26

항목 유형: PrivateKeyEntry

인증서 체인 길이: 1

인증서[1]:

소유자: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown

발행자: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown

일련 번호: 6668f1e2

적합한 시작 날짜: Tue Nov 26 22:21:02 GMT+09:00 2019, 종료 날짜: Mon Feb 24 22:21:02 GMT+09:00 2020

인증서 지문:

         MD5: 80:3E: AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA

         SHA1: D4:06:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA         SHA256:45:7E:94:79:5E:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA

         서명 알고리즘 이름: SHA1withDSA

         버전: 3

 

확장:

 

#1: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: B0 2C 9F AA AA AA AA AA AA AA AA AA AA AA AA AA.,.a.........a.

0010: AA 06 AA A2                                        ..<.

]

]


오류 없이 잘 생성이 되었습니다.


- copy coding -

프로젝트에서 가끔씩 사용되는 차트를 모아봤습니다.  Grid보다는 무료도 쓸만 한게 많은것 같습니다. 요즘에는 대부분 HTML 5를 지원하고 있고 데이터도 Json을 사용하도록 되어있어 사용법도 간단 합니다제품별 사이트에 있는 예제 화면을 모아보았습니다.

 

google chart

데모 : https://developers.google.com/chart/interactive/docs/gallery

무료 : https://creativecommons.org/licenses/by/4.0/deed.ko


java web chart google

java web chart google



Chart.js

https://www.chartjs.org/

데모 : https://www.chartjs.org/samples/latest/

      https://www.chartjs.org/docs/latest/ - source

무료 : MIT 

java web chart chartjs

java web chart chartjs

java web chart chartjs



APEXCHARTS

데모 : https://apexcharts.com/javascript-chart-demos/

무료 : MIT 


java web chart apexchart

java web chart apexchart

java web chart apexchart

java web chart apexchart



JFreeChart

데모 : http://www.jfree.org/jfreechart/samples.html

무료: The JFreeChart Developer Guide(유료)


java web chart jfreechart

java web chart jfreechart



C3.js

데모 : https://c3js.org/examples.html

무료 : MIT


java web chart c3js



AnyChart

데모 : https://www.anychart.com/products/anychart/gallery/

유료 : https://www.anychart.com/buy/


java web chart anychart

java web chart anychart

java web chart anychart

java web chart anychart

java web chart anychart



rMate Chart

데모 : http://demo.riamore.net/HTML5demo/chart/index.html

유료 : http://www.riamore.net/buy/license.html


java web chart rmate



amChart

데모 : https://www.amcharts.com/demos/

유료 : https://www.amcharts.com/online-store/


java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart



FusionCharts

데모 : https://www.fusioncharts.com/charts?product=fusioncharts

유료 : https://www.fusioncharts.com/buy


java web chart fusionchart

java web chart fusionchart

java web chart fusionchart

java web chart fusionchart


- copy coding -


1234

+ Recent posts