티스토리 뷰
기존 이클립스 프로젝트에 jar 파일을 추가하는 방법에 대해 적어본다. 요새는 maven을 기본적으로 사용하다보니 간편하게 jar 파일을 xml 로 관리만 해주면 된다. 하지만 maven 에 검색이 안되는 jar 파일인 경우나 직접 만든 jar 파일이라면 따로 관리를 해야 할 때도 있다. 그 해결방법으로는 프로젝트의 외부 jar 로 인식하여 절대경로로 jar 파일을 참조하는 경우와 프로젝트 내부에 jar 파일을 복사해서 넣어놓고 상대경로로 참조하는 경우이다.
보통은 [Add External JARs...] 버튼을 이용해서 추가하시는 방법을 사용하고 있는 것으로 안다. 그 말은 특정 jar 가 기본적으로 같은 위치에 있을 거라 예상될 때, 절대경로로 참조해야 한다. 안그러면 다른사람이 프로젝트를 받아 환경을 셋팅할 때 참조오류가 나기 일수이다.
우선 여기서 사용할 예제 jar 는 ms-sql 접속하기위해 필요한 jdbc 파일이며, sqljdbc4.jar 파일이다. jar 파일을 추가할 수 있는 Configure Build Path... 창을 띄운다.
Add External JARs...
[Add External JARs...] 버튼은 프로젝트 외부에 있는 jar 파일을 추가할 때 쓰는 버튼이다. 버튼을 눌러서 현재 저장되어있는 위치로 찾아가 선택해서 추가만 하면된다. 추가 하고 나면 절대경로로 참조하는 것을 볼 수 있다.
절대경로로 참조하면 지금 여기환경에서는 전혀 문제가 없으나, 이 프로젝트를 다른 컴퓨터에 셋팅할 때 어떻게 될까. 그림에 보듯이 D:\70_lib\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\kor 저위치에 정확하게 sqljdbc4.jar 가 존재하지 않으면 참조오류가 난다. 해당 jar 파일을 찾을 수 없으니 관련 소스파일 또한 빨간줄로 오류 표시가 날것이다. 이같은 jar 파일은 사용자가 다운받아서 어디서 가지고 있을지 아무도 모르는 jar 이므로 흔히 참조오류가 날 수 있다.
.classpath 파일만 봐도 다음과 같이 절대경로로 추가된다.
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src/main/resources"/> <classpathentry kind="src" path="src/main/java"/> <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> <classpathentry kind="src" path="src/test/resources"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/> <classpathentry kind="lib" path="D:/..(중략)../sqljdbc_3.0/kor/sqljdbc4.jar"/> <classpathentry kind="output" path="target/classes"/> </classpath>
Add JARs...
절대경로에 대한 단점을 보안하려고 보통 하는 짓이 프로젝트 내에 lib 폴더를 하나 생성해놓고 거기다가 jar 파일을 복사해 붙여넣고 상대경로로 인식하는 것이다. 프로젝트 맨 바깥에 폴더를 만든다. 이름은 "lib"로 하겠다.
그 폴더에 파일을 복사해 붙여넣으면 아래의 그림같이 나온다.
아직은 jar 파일이 프로젝트 안에 있는 것 뿐이지 아직 참조되고 있는 것이 아니다. 상대경로로 참조해보자.
Configure Build Path 팝업 창에서 [Add JARs...] 버튼을 누른다. 위와 같이 팝업이 뜨며, 프로젝트 안에 만든 lib 폴더안의 sqljdbc.jar 를 선택하고 ok 한다.
finance-spring/lib 로 보이듯이 상대경로로 참조되고 있음을 볼 수 있다. 이거의 단점이라면.. 프로젝트에 jar 파일을 복사해 넣으니 프로젝트 용량이 커진다는 단점이 있지만 상대경로로 하니 참조설정 때문에 다른 컴퓨터에 셋팅할 때 프로젝트안의 소스가 오류날 일이 없다.
.classpath 파일은 아래와 같이 변했다. 대세인 maven 은 기본이겠고, 부수적인 jar 를 관리할 일이 있다면 둘중에 상황에 맞게 사용하면 된다.
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src/main/resources"/> <classpathentry kind="src" path="src/main/java"/> <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> <classpathentry kind="src" path="src/test/resources"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/> <classpathentry kind="lib" path="lib/sqljdbc4.jar"/> <classpathentry kind="output" path="target/classes"/> </classpath>
- Total
- Today
- Yesterday
- MySQL
- ggplot
- Spring
- java
- MongoDB
- Oracle
- 알뜰요금제
- ubuntu
- 마인크래프트
- vagrant
- Google Chart Tools
- 도넛차트
- SVN
- ggplot2
- 이클립스
- 맥북
- 자급제폰
- R
- eclipse
- MyBatis
- ipTIME
- ktm모바일
- docker
- 셀프개통
- github
- javascript
- heroku
- 막대그래프
- python
- 아이맥
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |