일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 해석
- C
- MySQL
- H2O
- android
- 한글
- mariadb
- techEmpower
- caddy
- 번역
- NGINX
- 프래그먼트
- php
- it
- centOS7
- 개발
- C lanuage
- 안드로이드
- Portfolio
- java
- ubuntu
- 구글
- error
- 컴퓨터과학총론
- kakao
- 자바
- javascript
- unity
- 개발자
- server
- Today
- Total
개발모음집
ubuntu16.04에서 java파일과 postgresql을 JDBC로 연결하기 본문
앱을 만들다가 JavaSocket에서 PostgreSQL과 jdbc로 연결하기로 하였다.
1. postgresql 홈페이지에서 jdbc driver(postgresql-42.2.2.jar)를 다운받는다.
2. /usr/lib/jvm/java-8-openjdk-amd64/lib에 jar 파일을 옮긴다.
3. 컴파일할 때 자바파일이 있는 경로( ex> /var/www/html/serverSocket/)에서 컴파일과 빌드를 하면 된다.
컴파일 ( '' 와 : 는 빼면 안된다)
$ javac -cp ':(postgresql-42.2.2.jar가 있는 경로)' java 파일명
ex)
$ javac -cp ':/usr/lib/jvm/java-1.8.0-openjdk-amd64//lib/postgresql-42.2.2.jar' ChattingServer.java
빌드
$ java -cp ':(postgresql-42.2.2.jar가 있는 경로)' java 파일명
ex)
$ java -cp ':/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib/postgresql-42.2.2.jar' ChattingServer
해주면 된다.
참고 : stackoverflow
socket에서 Json을 쓰기 위해선 우선 jar 파일을 다운받는다.
나는 postgresql-42.2.2.jar 파일을 '/usr/lib/jvm/java-1.8.0-openjdk-amd64//lib/'에 넣어놨기에 json jar파일 또한 '/usr/lib/jvm/java-1.8.0-openjdk-amd64//lib/'에 넣어놓을 것이다.
컴파일 ( ' 와 : 는 빼면 안된다)
$ javac -cp ':(postgresql-42.2.2.jar가 있는 경로)':':(json-lib-2.4-jdk15.jar가 있는 경로)' java 파일명
ex)
$ javac -cp ':/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib/postgresql-42.2.2.jar':':/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib/json-lib-2.4-jdk15.jar' ChattingServer.java
빌드
$ java -cp ':(postgresql-42.2.2.jar가 있는 경로)'':':(json-lib-2.4-jdk15.jar가 있는 경로)' java 파일명
ex)
$ java -cp ':/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib/postgresql-42.2.2.jar':':/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib/json-lib-2.4-jdk15.jar' ChattingServer
참고 : stackoverflow
에러 발생
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
commons-beanutils-1.8.3
commons-collections-3.2.1
commons-lang-2.4
commons-logging-1.1.1
ezmorph-1.0
출처: [아틴 블로그]
예전 글이라 버전이 굉장히 낮음
일일이 다 찾아서 최신으로 다운받아야함
commons-beanutils-=> 다운URL
commons-collections-=> 다운URL
commons-lang- => 다운URL
commons-logging- => 다운URL
ezmorph- => 다운URL
실패한 방법
3. CLASSPATH를 입력해준다. ( 경로 변수들 export 해줘야함 )
$ nano /etc/profile
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
#CLASSPATH=/home/ubuntu:/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib/postgresql-42.2.2.jar
#CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/postgresql-42.2.2.jar
CLASSPATH=/home/ubuntu:/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib
#CLASSPATH=
#export CLASSPATH
4. 환경 변수 저장
$ source /etc/profile
출처 : 블로그
5. 환경설정확인
$ env | grep JAVA_HOME (환경변수 JAVA_HOME과 PATH 확인)
$ echo $CLASSPATH (환경변수 CLASSPATH 확인)
출처 : 블로그
+참고
실패한 예제처럼 /etc/profile을 수정하다가 잘안되어서 cp명령어로 컴파일하고 빌드함
/etc/profile 의 파일은 아래와 같이 변경했다. 하지만 결국 다 주석처리하였으니 /etc/prfile에서 CLASSPASS 경로 지정하지 않은 것이다.
즉, /etc/prfile에서 CLASSPASS 경로 지정하지 않고 컴파일, 빌드할 때 명령어로 CLASSPATH를 지정해준 것.
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
#CLASSPATH=/home/ubuntu:/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib/postgresql-42.2.2.jar
#CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/:$JAVA_HOME/lib/postgresql-42.2.2.jar
#CLASSPATH=/home/ubuntu:/usr/lib/jvm/java-1.8.0-openjdk-amd64/lib
CLASSPATH=
#export CLASSPATH
+ 추가 정보
6. JDBC 코드는 이 블로그에서 참고
'DB > RDBMS' 카테고리의 다른 글
nginx rtmp (0) | 2019.01.29 |
---|---|
Postgresql PsqlConnect.java (0) | 2019.01.29 |
Ubuntu 16.04에서 MariaDB 10.2 설치하기, 튜닝 (0) | 2018.03.21 |
UBUNTU16.04에서 MYSQL 5.7 설치하기, 튜닝, 삭제하기 (0) | 2018.03.20 |
MariaDB architecture (0) | 2017.12.18 |