반응형

Spring Jasypt 설정으로 DB 정보 암호화


DB 정보 암호화 설정 4단계

1. Spring 설정 xml 파일에 설정 구문 추가

2. 프로퍼티스(properties) 해당 DB 정보 추가

3. Maven pom 파일에 <dependency> 구문 추가

4. Spring 설정중 dataSource 값 properties 값으로 처리 추가


1. Spring 설정 xml 파일에 설정 구문 추가

<bean id="environmentVariablesConfiguration" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">  

        <property name="algorithm" value="PBEWithMD5AndDES" />  

        <property name="password" value="BRACE_PASS" />

</bean>

<bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">  

        <property name="config" ref="environmentVariablesConfiguration" />  

</bean>  

<bean id="propertyConfigurer" class="org.jasypt.spring3.properties.EncryptablePropertyPlaceholderConfigurer">  

        <constructor-arg ref="configurationEncryptor" />  

        <property name="locations">  

            <list>  

                <value>[파일위치]/dbinfo.properties</value>

<value>[파일위치]/db2info.properties</value>

            </list>  

        </property>  

</bean>

 스프링에 설정 파일 servlet-context.xml 파일등에 위와같이 설정 구문을 추가 하면 됩니다.

<property name="password" value="BRACE_PASS" /> 부분에 value 값은 암호화 키를 설정한 것이다.

<property name="algorithm" value="PBEWithMD5AndDES" />  알고리즘은 DES로 할것임을 알 수 있다.

일반적으로 보통 패스워드는 단방향 암호화를 사용합니다. 하지만 위에 설정된 MD5는 양방향 암복호화가 가능 합니다.

복호화시에는 위에 설정된 키값을 이용해서 확인이 가능합니다.


2. 프로퍼티 DB 정보 설정

1번 설정 정보있는 <value>[파일위치]/dbinfo.properties</value>

위 설정된 위치에 dbinfo.properties 파일을 생성하고 UTF-8 방식으로 파일을 저장합니다.

프로퍼티 내용은 "key = value"와 같은 양식으로 작성합니다.

예를 들어 설정한 값은 아래와 같습니다.

db.driver = org.mariadb.jdbc.Driver (드라이버)

db.url = jdbc:mariadb://192.168.0.100:3306/testdb (접근주소)

db.username = testuser (접근계정)

db.password = ENC(Yl2wdgxnrY9C%4ddQzDzjCMXXdw/lHUNm)

password 값 ENC() 안에 있는 값을 생성 또는 확인하기 위해서는 

http://www.jasypt.org/download.html 사이트에 들어가서 다운로드받은 뒤 확인 할 수 있는데

최신 버전은 1.9.3 버전으로 2019.05.25로 갱신된것 같습니다.

DOWNLOAD JASYPT (from GitHub) 를 클릭하여 GitHub에서 다운로드 받을 수 있습니다.

콘솔에서 암호화 값을 확인하려면 jasypt-dist 를 확인하시면 됩니다.

GitHub에서 프로젝트를 다운받아 설정하는데 어려움이 있는 분들을 위해서 압축된 파일을 같이 첨부합니다.

jasypt-1.9.2-dist.zip

해당 파일을 다운로드 받아 압축해제 하시고 사용하면 됩니다.

cmd 창에서 압축해제한 폴더로 이동하여 윈도우에서 bat 파일을 실행하면 됩니다. 

명령어는 아래쪽에 정리되어 있습니다. 


3. Maven pom 파일에 <dependency> 구문 추가

GitHub 주소(https://github.com/jasypt/jasypt) 페이지로 들어 가보면 알수 있지만

다양한 프레임워크에서 사용이 가능합니다. 

그중 Spring3으로 설정하는 부분을 예로 들겠습니다.

<dependency>  

    <groupId>org.jasypt</groupId>  

    <artifactId>jasypt-spring3</artifactId>  

    <version>1.9.3</version>  

</dependency>

POM.xml 파일에 추가하면 됩니다.


4. Spring 설정중 dataSource 값 properties 값으로 처리 추가

Spring DB dataSource 설정 부분에 아래와 같이 설정 합니다.

servlet-context.xml 파일등에 같이 설정 할 수도 있습니다.

위 1번에서 선언한 프로퍼티 파일에서 선언된 값을 ${} 방식으로 호출하여 사용합니다.

<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">

<property name="driverClass" value="${db.driver}" />

<property name="url" value="${db.url}" />

<property name="username" value="${db.username}" />

<property name="password" value="${db.password}" />

</bean>


dist 에 있는 sh파일 기능및 명령어 간편정리

listAlgorithms : 사용가능한 암호화 알고리즘 리스트를 보여줍니다.

    DIGET, PBE 2가지 리스트로 알고리즘이 구분되어 확인 할 수 있습니다.

[실행]

C:\>listAlgorithms

digest : 입력값(input)과 알고리즘(algorithm)을 변수에 값을 입력하여 암호화

         DIGET 알고리즘만 가능합니다.

[실행]

C:\>digest input="test123" algorithm="MD5"

encrypt : 입력값(input),키값(password),알고리즘(algorithm) 변수에 값을 입력하여 암호화

  PBE 알고리즘만 가능합니다.

  password는 <property name="password" value="BRACE_PASS" /> 이유가

  설정에서 password 설정부분이 키값이 되는 이유입니다.

[실행]

C:\>encrypt input="test123" password="BRACE_PASS" algorithm="PBEWithMD5AndDES"

decrypt : 입력값은 암호화 된값으로 받아 값을 디코딩하여 확인 할 수 있습니다.

  encrypt와 동일한 방법으로 명령어만 decrypt를 사용합니다.

[실행]

C:\>decrypt input="Yl2wdgnrY9C+4dn" password="BRACE_PASS" algorithm="PBEWithMD5AndDES"


반응형
반응형

contains 자바 String 메서드 


자바 String contains() 메소드는 String 값에서 특정 순서를 검색합니다.

정의 : boolean contains(charSequence s)

charSequence 지정된 문자열 s 이 포함되어 있는지 확인하여 boolean 값을 반환 합니다.


String str = "test contains method example";

boolean  containValue = str.contain("con");

if( containValue ) {

  system.out.println("str 문자열내에 con 문자열이 포함되어 있다" )

}else{

  ...

}

str.contain("con") 는 true를 반환한다. 


또는 indexOf 메소드를 사용해서 문자열을 검증체크 하는데 자주 사용된다.

실제로 indexOf 메소드는 문자열 위치를 찾는 메소드 이지만 

찾고자 하는 문자열이 포함 되어 있는지 여부를 체크 할때 많이 쓰여지는 것을 볼수 있다.


String str = "test contains method example";

int indexOfValue = str.indexOf("con");

system.out.println("indexOfValue 값은 : " + indexOfValue + " 이다".);


여기에서 실제 indexOfValue 반환값은 정수값 6 이 반환 될 것이다. 

단어를 찾을 때 첫글자의 위치를 반환 한다.

만일 문자열에 찾는 값이 없다면 반환 되는 값은 -1 이다. 



반응형
반응형

open <tag> in XML mapper - mybatipse plugin 사용하기


1. mybatipse plugin 의 사용 이유

스프링으로 controller service serviceImpl dao vo 파일에서 작업 시 컨트롤러에서 서비스로 이동할때 

F2, F3를 이용하거나 ctrl을 눌러 open declaration을 통해  컨트롤러에서 이동할 서비스 위치를 찾아 갑니다.

service에서 serviceImpl도 그렇고 DAO에서 VO도 사용을 합니다. 

serviceImpl 이나 dao에서 선택자(id)에 해당하는 mapper 쿼리를 빠르게 이동할 때 사용할 수 있습니다.

일반적으로는 plugin이 설치 되지 않아 바로 이동이 불가능 합니다. 

이럴 경우 mybatipse plugin (Eclipse plugin adding support for MyBatis SQL Mapper Framework.) 을 사용하면 많은 도움이 된다.


2. 설치 방법

Help -> Eclipse MarketPlace -> mybatipse 검색합니다.

[마켓 검색]


현재 최신 버전은 MyBatipse 1.2.2 버전입니다. 버전은 변경 될 수 있습니다.

프로그램을 Installed 하고 난후 sts나 eclipse를 재기동을 하면 설치가 됩니다. 

설치 방법은 아주 간단합니다. 


3. 사용 방법

설치를 하고 sts나 eclipse가 재기동이 되면 이동할 메소드(dao)에서 ctrl키를 눌러 보면

open <tag> in XML mapper 옵션이 추가 된것을 확인 할 수 있습니다. 



반응형
반응형

Date Class getTime() 와 SimpleDateFormat을 통한 String 날짜 시간 비교 방법

감사합니다 고맙습니다 운이 좋습니다.


개발을 하다보면 시간을 비교 해야 하는 경우가 많이 있습니다. 

String 형태의 지정된 날짜와 현재 또는 특정일과 비교를 해야 하는 경우에 getTime() 을 사용하게 됩니다. 

getTime()은 import java.util.Date 를 선언하고 사용하면 됩니다. 

String 일시(날짜+시간)를 서로 비교할때 SimpleDateFormat을 사용해서 동일한 형식으로 변경하여 쉽게 비교 할수 있습니다. 

예를 들어 현재일시가 세일기간 사이에 있는지 확인을 방법은 다음과 같습니다. 


String saleStartStr = "2018.09.28 00:30"; //세일 시작 일시

String saleEndStr = "2018.09.30 23:30"; //세일 종료 일시

Date nowDayTime = new Date();


SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm"); // String 날짜 형식을 정의 합니다. 

String nowDayTimeStr = sdf.format(nowDayTime);  // 현재일시를 같은 형식으로 파싱합니다.

Date saleStart = sdf.parse(saleStartStr); // 시간으로 변경을 합니다. 

Date saleEnd = sdf.parse(saleEndStr); // 시간으로 변경을 합니다.

Date nowDayTimeFormat = sdf.parse(nowDayTimeStr); // 시간으로 변경을 합니다.


// 이제 비교를 진행 합니니다. 

// Date 형식으로 값을 변경한 것은 getTime() 메소드를 사용하기 위해서 입니다. 


if(saleStart.getTime() > nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 시작 전 입니다.");

}

// nowDayTimeFormat.getTime() 값이 작으면 시작일보다 앞에 있다는 이야기 입니다. 

// 날짜를 비교할때 실수를 많이 하는 부분이기 때문에 주의가 필요합니다. 


if(saleStart.getTime() < nowDayTimeFormat.getTime(){

System.out.println("현재는 세일 시작 후 입니다.");

}

// 현재 시간을 분단위 까지 정의 하였기 때문에 두 값이 같은 경우는 제외 하겠습니다. 

// 동일하게 종료 시간도 다음과 같이 확인을 할 수 있습니다. 


if(saleEnd.getTime() > nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 종료 전 입니다.");

}

if(saleEnd.getTime() < nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 종료 후 입니다.");

}

// 다음은 세일 기간 중인지 아닌지를 알아보겠습니다. 


if(saleStart.getTime() <= nowDayTimeFormat.getTime() && saleEnd.getTime() >= nowDayTimeFormat.getTime()){

System.out.println("현재는 세일기간 중 입니다.");

}else{

System.out.println("현재는 세일기간이 아닙니다.");

}


// 조건을 변경하여 다음과 같이 조건문을 사용 할 수도 있습니다. 


if(saleStart.getTime() > nowDayTimeFormat.getTime() && saleEnd.getTime() < nowDayTimeFormat.getTime()){

System.out.println("현재는 세일기간이 아닙니다.");

}else{

System.out.println("현재는 세일기간중 입니다.");

}


// 그럼 getTime() 으로 비교가 가능한 이유는 날짜date를 long형 숫자 값으로 변경하기 때문입니다. 

// 여기서는 현재 날짜를 new Date()를 사용해서 구했지만 

// 요즘은 Calendar 를 사용해서 많이 구합니다. 

// Calendar 를 사용하면 다음과 같습니다. 

// 선언된 nowDayTime.getTime() 을 바로 사용해도 되지만 같은 형식으로 변경한 후에 사용한것으로 구성했습니다. 

String saleStartStr = "2018.09.28 00:30";

String saleEndStr = "2018.09.30 23:30";

Calendar nowDayTime = Calendar.getInstance(); // Calendar 를 이용해서 현재일시를 구합니다. 


SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm");  

String nowDayTimeStr = sdf.format(nowDayTime);

Date saleStart = sdf.parse(saleStartStr);

Date saleEnd = sdf.parse(saleEndStr);

Date nowDayTimeFormat = sdf.parse(nowDayTimeStr);


if(saleStart.getTime() > nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 시작 전 입니다.");

}


if(saleStart.getTime() < nowDayTimeFormat.getTime(){

System.out.println("현재는 세일 시작 후 입니다.");

}


if(saleEnd.getTime() > nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 종료 전 입니다.");

}

if(saleEnd.getTime() < nowDayTimeFormat.getTime()){

System.out.println("현재는 세일 종료 후 입니다.");

}


if(saleStart.getTime() <= nowDayTimeFormat.getTime() && saleEnd.getTime() >= nowDayTimeFormat.getTime()){

System.out.println("현재는 세일기간 중 입니다.");

}else{

System.out.println("현재는 세일기간이 아닙니다.");

}


if(saleStart.getTime() > nowDayTimeFormat.getTime() && saleEnd.getTime() < nowDayTimeFormat.getTime()){

System.out.println("현재는 세일기간이 아닙니다.");

}else{

System.out.println("현재는 세일기간중 입니다.");

}


 

반응형
반응형

Array constants can only be used in initializers

배열 상수는 초기화에 사용할 수 있습니다.

[배열 선언]

String[] arr = new String [3];  //배열 선언

arr = {"XX", "YY, "ZZ"};         //배열 초기값 

일반적으로 자바에서 선언 하는 방식입니다. 

String[] arry = {"XX", "YY, "ZZ"}; 

이 방식은 자바 표준 선언 방식이 아닙니다. 


이 코드는 다른 언어 (C언어) 등을 사용하는 사람들을 위해 호환성을 살린 부분 이라고 합니다. 

자바는 C언어처럼 포인터를 직접 사용하지 않기 때문에 객체 선언 new 를 사용하여 동적 메모리 할당 영역에 메모리를 잡는 방법을 사용합니다.

[정규식]

String[] arry = new String []{"XX", "YY", "ZZ"};

위와 같이 선언이 정규식 코드 방식입니다. 


String[] arry = {"XX", "YY, "ZZ"};  식이 비정규식인지를 확인 해 볼수 있는 코드 구분을 예로 들어 보겠습니다. 

IF구문을 이용해서 확인해 볼수 있습니다. 

int ifvalue = 1;

String[] arry = null;

if ( ifvalue ==0) { 

  arry = {"XX", "YY, "ZZ"}; 

}else{

 arry = {"XX1", "YY1, "ZZ1"}; 

}

이화 같이 선언을 해도 에러가 없을 것 같지만 바로 빨간 줄이 들어옵니다. 

요즘은 좋은 툴들이 많아서 이클립스 등의 툴로 위 와 같이 코드를 쓰면 바로 오류인걸 확인 할 수 있습니다. 


위코드는 다음과 같이 수정을 하면 됩니다.

int ifvalue = 1;

String[] arry = null;

if ( ifvalue ==0) { 

  arry = new String []{"XX", "YY, "ZZ"}; 

}else{

 arry = new String []{"XX1", "YY1, "ZZ1"}; 

}

new String[] 구분을 넣어 주면 바로 코드를 정상으로 인식합니다. 

이 간단한 코드로 어떤 표현이 정규식인지 바로 알 수 있습니다. 


반응형
반응형

우선은 Linux운영체제에 Java가 설치 되어 있는지부터 확인 해야 한다.

java -version

이 명령어를 쳤을때 자바에 관련된 정보가 나온다면 자바는 설치 되어 있는것..

java version "1.7.0_85"

OpenJDK Runtime Environment (rhel-2.6.1.2.el7_1-x86_64 u85-b01)

OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)

위와 같은 방법으로 자바 버전을 확인 할 수도 있고.

rpm -qa | grep java

이방법도 가능하다.

 java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64

 java-1.7.0-openjdk-headless-1.7.0.85-2.6.1.2.el7_1.x86_64

운영체제에 기본으로 설치 되어 있는 OpenJDK가 설치 되어 있음을 확인 할 수 있다.

설치 된 OpenJDK를 사용 할 수도 있겠지만..JDK를 받아 설치..해 본다.


우선 기존의 OpenJDK를 제거 해야한다.


yum remove JavaVersion

yum remove뒤에는 현재 설치 되어 있는 Java버전을 적어주면 된다.

rpm -qa로 검색된 자바는 java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64와 같으니 이걸 적어주면 삭제 진행..

두번째 줄에 나온 것도 추가로 삭제 진행..


tzdata-java라든가 하는것들이 rpm -qa명령을 실행하면 세개나 더 생기는 것을 볼 수 있는데.

역시 이것들도 삭제 진행..

다시 rpm -qa | grep java를 실행하면 아무것도 안나오는 것을 볼 수 있다.


설치에 앞서서 OS버전을 알아야 한다.

근데 알아야 하나??몇비트 운영체제인지만 알면 되는건가??

rpm -qa *release

이건 운영체제의 전체적인 버전을 나타내는 것이고..

getconf LONG_BIT

이건 운영체제가 32bit인지 64bit인지를 알아내는 명령어..

운영체제에 맞는 Java를 다운 받는다. 


tar.gz파일을 다운.. jdk-8u171-linux-x64.tar.gz

파일을 복사한 위치는 /usr/local/

gunzip jdk-8u171-linux-x64.tar.gz

tar -xvf jdk-8-linux.tar

위의 명령어를 차례로 실행하면 /usr/local경로에 자바 SDK를 압축해제 한다.


아마도 jdk1.8.0... 이런식의 폴더가 생길것인데..

자바 설정에 이 폴더 그대로를 넣어 줄수도 있지만..추후 자바 업데이트를 위해서 링크를 사용하겠다.

자바폴더가 있는 /usr/local에서 

ln -s jdk1.8 java (해제는 rm -f java)

ln -s [디렉토리] [링크명칭]

이 명령어를 실행하면 /usr/local 경로에 java라는 링크가 생기는것 을 확인 할 수 있다.

다음 작업은 profile파일을 수정하는 작업이다.

vi /etc/profile

위 명령어를 실행하면 profile파일 수정화면으로..

JAVA_HOME=/usr/local/java

CLASSPATH=.:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin

export JAVA_HOME CLASSPATH PATH

위에 적인 네줄을 최하단에 넣고 저장.


자바가 설치된 경로를 인식 시켜주는 구문..

변경된 profile의 내용을 적용 시켜줘야 하는데 그 명령어는 아래와 같다.

source /etc/profile

이로서 Java 설치는 끝이 났고 확인은 


java -version

javac -version

이 명령어로 확인하면 된다.




반응형
반응형

import java.io.BufferedReader;


import java.io.InputStream;


import java.io.InputStreamReader;


import java.util.ArrayList;


import java.util.List;


import java.util.StringTokenizer;



import ch.ethz.ssh2.Connection;


import ch.ethz.ssh2.Session;


import ch.ethz.ssh2.StreamGobbler;




import com.javasrc.jolt.component.linux.model.FileSystem;




/**


 * SSHAgent는 Java 응용 프로그램이 SSH를 통해 원격 서버에서 명령을 실행할 수 있도록


 * 한다.


 * @author madnix


 *


 */


public class SSHAgent {


    


    /**


     * 서버에 연결하는 호스트 이름 (or IP 주소)


     */


    private String hostname;


    


    /**


     * 해당 서버에 있는 사용자 이름


     */


    private String username;


    


    /**


     * 해당 서버에 있는 사용자의 암호


     */


    private String password;


    


    /**


     * 서버 연결 커넥션 객체


     */


    private Connection connection;


    


    /**


     * SSHAgent 객체 생성


     * 


     * @param hostname


     * @param username


     * @param password


     */


    public SSHAgent( String hostname, String username, String password )


    {


        this.hostname = hostname;


        this.username = username;


        this.password = password;


    }


    


    /**


     * 서버에 연결


     * 


     * @return        연결 성공 시 true, 그 외에는 false


     */


    public boolean connect() throws SSHException


    {


        try


        {


            // 서버 연결 객체 생성


            connection = new Connection( hostname );


            connection.connect();


            


            // 인증


            boolean result = connection.authenticateWithPassword( username,    


                                   password );


            System.out.println( "연결 성공 여부 : " + result );


            return result;


        }


        catch( Exception e )


        {


            throw new SSHException( "호스트에 연결하는 동안 예외가 발생하였습니다 : 


                                  " + hostname + ", Exception=" + e.getMessage(), e ); 


        }


    }


    


    /**


     * 지정된 명령을 실행하고 서버에서 응답을 반환한다.


     *  


     * @param command        command 실행


     * @return               서버에서 반환하는 응답 (or null)


     */


    public String executeCommand( String command ) throws SSHException 


    {


        try


        {


            // 세션 생성


            Session session = connection.openSession();


            


            // command 실행


            session.execCommand( command );


            


            // 결과 확인


            StringBuilder sb = new StringBuilder();


            InputStream stdout = new StreamGobbler( session.getStdout() );


            BufferedReader br = new BufferedReader(new 


                                             InputStreamReader(stdout));


            String line = br.readLine();


            while( line != null )


            {


                sb.append( line + "\n" );


                line = br.readLine();


            }




            // DEBUG : exit 코드 덤프


            System.out.println( "ExitCode : " + session.getExitStatus() );




            // 세션 종료


            session.close();


            


            // 호출자에게 결과를 반환


            return sb.toString();


        }


        catch( Exception e )


        {


            throw new SSHException( "다음 명령을 실행하는 동안 예외가 발생하였습니다. 


                               : " + command + ". Exception = " + e.getMessage(), e );


        }


    }




    /**


     * 서버에서 로그 아웃


     * @throws SSHException


     */


    public void logout() throws SSHException


    {


        try


        {


            connection.close();


        }


        catch( Exception e )


        {


            throw new SSHException( "SSH 연결을 종료하는 동안 예외가 발생했습니다. : 


                                               " + e.getMessage(), e );


        }


    }


    


    /**


     * 기본 인증이 완료되면 true를 반환하고 그렇지 않을 경우 false


     * @return


     */


    public boolean isAuthenticationComplete()


    {


        return connection.isAuthenticationComplete();


    }


    


    public static void main( String[] args ) 


    {


        try


        {


            SSHAgent sshAgent = new SSHAgent( "192.168.2.3", "username", 


                                                               "mypassword" );


            if( sshAgent.connect() ) 


            {


                String diskInfo = sshAgent.executeCommand( "df -k" );


                System.out.println( "디스크 정보 : " + diskInfo );


                


                String processInfo = sshAgent.executeCommand( "top -b -n 1" );


                System.out.println( "프로세스 정보 : " + processInfo );


                


                // 로그아웃


                sshAgent.logout();


            }


        }


        catch( SSHException e )


        {


            e.printStackTrace();


        }


    }


}


출처: http://madnix.tistory.com/entry/Java에서-SSH를-통해-리눅스-서버에-명령을-전달하는-코드

반응형
반응형

[자바] 설치된 자바(java) bit 확인 방법 32bit/64bit

어떤 상황에 어떤 버전의 자바가 설치 되어 있는지 확인 해야 하는 경우가 

발생한다. 

또한 룰 등이 바뀌면서 java 설치 등을 서버 담당자가 하는 경우가 빈번히 일어

나기 때문에 확인할 방법이 필요해서 적는다. 


64bit 자바 버전을 확인하는 명령어

1. bin폴더 java.exe 파일이 있는 위치로 이동한다. (윈도우 경우)

  리눅스의 경우에는 which java 명령을 사용하거나 하면 찾을 수 있다. 

2. 버전 확인용 아래 명령을 실행 한다.

   java -d64 -version (윈도우/리눅스 공통)

 실행 후 64 비트 인경우 다음과 같은 메세지가 나온다. 

-----------------------------------------------------------------------------

 java version "1.7.0_75" (버전숫자는 다르게 나올수 있다.)

 OpenJDK Runtime Environment (IcedTea6 1.10.4) (rhel-1.24.1.10.4.el5-x86_64)

 OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

 ---------------------------------------------------------------------------

위와 같이 나올경우 리눅스에서 64비트를 나타낸다. 

32비트 인경우는 다음과 같은 메세지가 나온다. 

------------------------------------------------------------------------------

Error: This Java instance does not support a 64-bit JVM.

Please install the desired version.

-----------------------------------------------------------------------------

에러 메세지가 나올경우 32비트로 설치 되어 있는것이다. 



반응형

+ Recent posts