에러내용:

 

 Servlet.service() for servlet article threw exception
org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];   

 

이런 에러문구는 resultType 을 찾지 못하는 경우 발생한다.

 

예를 들면 ibatis sqlMap 설정에서 result 클래스명이 잘못 지정된 경우이거나

ibatis에서 정의한 resultMap 과 java 클래스간 내용이 일치하지 않을 때 발생한다.

 

일반적인 경우 vo작성시 getter/setter generater를 사용하여 만드는 경우에는 별일이 없지만

직접 작성 또는 수정후 재생성시 getter 또는 setter 메소드가 잘못 생성되었거나 중복되는 경우 위와 같은 에러가 발생한다.

 

특히 내부변수값을 변경하고자 하는 경우 자동생성시는 관련 setter/getter 메소드를 삭제후 구동하여야....ㅋ..

 

 

 

[WTP] CHKJ4019W Warning

개발 이야기/이클립스 | 2008. 2. 25. 13:20
Posted by 시반

이클립스 WTP에서 dbcp설정을 하기위해 tomcat(v5.5)의 web.xml에

   <resource-ref>
      <description>Oracle</description>
      <res-ref-name>jdbc/데이타소스명</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>

을 추가했다.

 

헌데 CHKJ4019W: Invalid res-sharing-scope; valid values are "Shareable" or "Unshareable". 라는

warning 문구가 web.xml에 반짝거리는것이 아닌가?

 

dbcp 설정이 좀 변한것이 있나 싶어서 dbcp로 검색해봐두 그런부분은 없는데...

정말 인터넷이 없다면 어떻게 개발할까 고민이..ㅋ_ㅋ

 

The bean provider can control the extent that connections are shared. By default, other enterprise beans in the application that use the same resource in the same transaction context can share the connection. The bean provider can set the res-sharing-scope deployment descriptor element to Unshareable to indicate that a connection not be shared. Keep in mind, though, that sharing connections to a resource manager allows the container to optimize connection and local transaction use. It is recommended that connections be marked Shareable

 

이런이런 애써 찾은것이 영어라니.. 힘들군.. 대충 짧은 영어실력으로나마 해석해보면

같은 리소스를 사용하는 (웹)어플리케이션에서 빈끼리는 커넥션을 공유할 수 있으며

container 설정을 통해 관리될수 있다.(추천사항은 Shareable) 

 

설명은 복잡하지만 한 마디로

 <res-sharing-scope>Shareable</res-sharing-scope>

문구를  <resource-ref/> 안에 추가해주라는 말이다.

 

시간이 흘러갈수록 점점더 내가 무엇을 알고 있나 하는 생각이 끊이질 않는다.

아싸. 힘내자...

 

 
데이타의 전송은 객체건 뭐건 결국 바이트의 흐름으로 전송하게 된다. 저장도 그렇고...
다시 읽었을 때 객체의 자료구조를 그대로 보존하지 않으면 않된다.(일명 Serialzation)
자바에선 Serializable 인터페이스만 구현하면 알아서 이를 보장해주기에 단지 implements Serializable 만 추가하면 된다.
 
일전에도 언급한 적이 있지만 5.0 이후부터는 Serialzable 인터페이스를 구현한 클래스에서
 static final long 타입의 serialVersionUID 상수를 선언하라는 경고문구를
이클립스의 노란 warning 아이콘과 더불어 확인 할 수 있다.
 
만일 serialVersionUID를 지정하지 않으면 실행시점에서 JVM이 디폴트 값을 산정하게 되며,
그 알고리즘은 Java(TM) Object Serialization Specification 정의된 것을 따른다고 한다.
한마디로 굳이 신경 쓸필요는 없다는 뜻이고 이클립스내에서 이 경고아이콘을 제외하도록 설정할 수도 있다.
 
그러나 모든 serialization이 필요한 클래스에는 명시적으로 serialVersionUID를 선언해줄것을 강력하게 권유하고 있는데
그 이유는  디폴트 serialVersionUID 계산은 클래스의 세부 사항을 매우 민감하게 반영하기 때문에 컴파일러 구현체에 따라서 달라질 수 있어 deserialization(serialization 했던 객체를 복구하는 과정)과정에서 예상하지 못한 InvalidClassExceptions을 유발할 수 있다.
라는 것이 그 이유란다.
 
즉 서로 다른 자바 컴파일러 구현체 사이에서도 동일한 serialVersionUID값을 얻기 위해서는 명시적으로 serialVersionUID값을 선언해야 하며 가능한 serialVersionUID을 private으로 선언하라는 것이다.
(상속되어 쓰여지는 것은 유용하지 않고, 해당 클래스에서만 쓰일 것이기 때문에....)
 
이궁 이렇게 이야기하는데 한줄 더 써주지 머...
ㅋ 말은 이리 하지만 무진장 귀찮다. serialver.exe를 이용하면 된다는데 다른 건 없나 찾아보게 되었다
 
첨부파일을 압축을 풀고 이클립스 플러그인 디렉토리에 넣어두면 자동생성 플러그인 설치는 끝
3.3에서도 이상없이 작동한다. 사용방법은 다음과 같다.
파일을 선택 마우스 오른클릭하면
Add serialVersionUID 라는 메뉴가 추가 되어 있는것을 확인할 수 있다. 클릭...
 
 
 
그러면 다음과 같이 클래스에 serialVersionUID가 자동 생성되었슴을 확인할 수 있다.
간단히 private 만 적어주면 끝...
 
 

PS. 이클립스 3.3 이후부터는 해당플러그인을 설치할 필요없이 노란 Warning 경고 아이콘 부분을 클릭한 후 add generated serial version UID 를 선택하면 UID가 자동생성됩니다.
 
 
 

Java 클래스 코딩의 기본적인 룰 중 하나가,
코드 내에서 발생될 수 있는 '모든' 예외는 검출되 않으면 안되며, 발생된 예외는 반드시 처리되지 않으면 안된다.
입니다.

허나 코딩에 익숙한 프로그래머라도 모든 예외상황을 일일이 다 기억할수가 없기때문에 컴파일러에서 보내주는 메세지와 API 레퍼런스 이용할수 밖에 없습니다.

보통 모든 예외를 공통클래스에서 처리하는 방법은 사용하기도 하지만, 엄밀하게 따지자면 예외형태에 따라 처리방법을 설계/코딩하는 것이 바람직합니다.

Eclipse의 try/catch블럭 자동생성 기능을 사용하면 이러한 코딩의 번거로움을 줄이고 예외처리 자체에 좀더 집중할수 있습니다.

사소하게 보일수도 있으면 이런 사소한 기능을 알고있으면 실제 코딩시 손에 익게되면 상당히 큰 도움이 될수도 있습니다.

먼저 예외처리가 발생할 지점을 블럭지정한 후 마우스 오른쪽 클릭 surround with 를 선택한후 try/catch block 를 선택합니다.

(try/catch외 for/do/if/while등을 지정할수 있습니다.)

 

 

 

다음과 같은 예외처리 구문이 자동 생성됩니다....*^^*


 

 

 

 

 

 

 

'개발 이야기 > 이클립스' 카테고리의 다른 글

[WTP] CHKJ4019W Warning  (0) 2008.02.25
[Eclipse] serialVersionUID 자동생성하기  (0) 2008.02.05
[Plug-In] UML2  (0) 2008.01.31
OutOfMemoryError: PermGen space 에러문제  (0) 2008.01.29
이클립스로 JAVA API 열기  (0) 2007.12.21
 

[Plug-In] UML2

개발 이야기/이클립스 | 2008. 1. 31. 11:04
Posted by 시반
 
 
프로젝트를 시작할 때면 개발환경 세팅하네.. 시스템 설계하네.. 산출물 작성하네...
나름 바쁜 일정을 보내게 된다.
솔직히 UML툴을 통한 코드 생성은 그닥 써보지 않아서..
첨엔 와~ 코드가 자동으로 생성되네... 감탄했던 적도 있었지만
불필요한 코드가 많이 생성되기도 하고 세밀한 설정은 좀 힘들었기에 실제로는 설계산출물용으로만 쓰게 되었다.
Together, MyEclipse, EclipseUML 등 여러가지 써봤지만 젤 첨에 썼던거라 그런지 together가 젤 편한 듯 하다는건
갠적인 사견일 뿐이다. 모두 이클립스 플러그인으로 제공되고 있긴 하지만 무료라기 하기엔 기능제한도 있고(정품등록 필요)
단순한 설계 산출물용만으로 쓰기엔 용량도 만만치 않다.
단순하게 도표만 만들어주는건 없나 찾다 발견한것이 UML2다.
아직 인큐베이션 단계이기 때문이라서 아직 도표만 만들어줄뿐이지만
딱 내가 원했던 기능이라 만족한다. 물론 용량이 적다고는 할수 없지만 다른 것들에 비해 상대적으로 적다는게 장점(?)
 
일단 설치를 해보자.
 
아래 강조한 부분을 모두 받아서 특정 디렉토리에 모두 풀어놓는다.
##########0*
 
 
실치후 아래처럼 UMLClass Diagram을 선택한 후 그리면 된다.
##########1*

앞서 말했지만 이클립스에서 할 수 있는 건 아직까지 도표를 만드는 기능뿐이라는 점. 역시 사용방법은 다른 것들이랑 별 차이는 없다....*^^*
##########2*
 

개발을 하면서 이클립스를 빼놓을수는 없다. 매번 프로젝트가 끝날때마다.

버전업하면서 바뀐부분이 무엇인지를 확인해보곤 하는데

이번 이클립스 3.3 europa 버젼은 좀 문제가 있는 듯 하다

3.1 이나 3.2에서는 별 이상이 없는데 3.3에서만 PermGen space  메모리 에러가 발생하면서 이클립스가 죽어버린다

 

PermGen은 클래스명 내부String같이 가비지 콜렉팅에 해당되지 않는 객체들을 위해 영구적으로 생성된 영역이라고 한다.

이부분에서 메모리 부족이 생기는것이 에러의 발생원인이라고 하는데

내 경우엔 기존의 프로젝트를 불러온 것도 아니고 단순히 프로젝트 하나 만들어 테스트페이지 하나 만들면서 설정파일을 읽어들이기만 하면

PermGen space 에러를 뿌려댄다.

나뿐만 아니라 Run AS.. 같이 ant를 실행시키거나 외부프로그램을 실행할때 그런 일이 발생한다는 주변인의 말을 들어보면

이클립스나 SUN vm의 버그가 아닌가 생각된다

 

기냥 3.2 버젼을 쓰면 별 상관이 없겠지만 일단 3.3을 사용하려고 한다면 임시 방편으로

이클립스 실행옵션에 MaxPermSize를 늘려주거나 이클립스내 외부프로그램 실행옵션 중 jre 부분의 Default VM Arguments 를 변경해주면 된다. 머 이방법은 3.3이 아니라 이전버젼에서도 메모리 부족 현상이 일어날때 공통적으로 적용가능한 방법이다

 

좀더 상세히 적어보면

먼저 MaxPermSize를 충분히 설정해주는 방법인데

eclipse -vmargs -XX:PermSize=256M -XX:MaxPermSize=512M

 

이렇게 하면  실행시 VM옵션이 적용된다고 하는데 

플러그인 같은걸 많이 등록한 경우엔 이클립스 구동속도가 조금 빨라진다는 느낌이 들지만

ant 같은 외부 프로그램 실행시에는 여전히 같은 메시지를 뿌려대는건 마찬가지이니

아마 외부프로그램과는 좀 무관한 설정같다는 생각이 든다.

 

아니면 이클립스 홈디렉토리의 eclipse.ini 파일의 옵션을 변경해도 된다

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize

512m
-vmargs
-Xms40m
-Xmx256m
-XX:MaxPermSize=512

 

설정시에 3번째 라인처럼  lancher 옵션으로 MaxPermSize를 지정해도 된다고 하는데

유로파버전에서는 lancher옵션이 잘 적용되지 않는도고 하니 기냥 하단에 옵션을 추가하면 된다.

 

두번째 방법은 외부프로그램실행시 PermGen 메모리 부족이 발생하는것을 막기위해서 jre 옵션부분에 위의 옵션들을 넣어주는것이다. 

 

1. Window > Preperences ..

2. Java > Installed JREs 에서 사용중인 jre 나 jdk 클릭

3. 오른쪽메뉴의 Edit.. 클릭

4. Default VM Arguments 항목에

   -vmargs-Xms40m -Xmx256m -XX:MaxPermSize=512m

  입력후 확인

 

일단 이리하면 에러는 많이 없어지지만 3.2를 쓸지 3.3을 쓸지 고민을....

 

 

@Override 사용하기

개발 이야기/Java | 2008. 1. 24. 13:10
Posted by 시반

jdk 5에서부터 추가된 또하나의 기능인 @Override를 소개하고자 한다.

머 이미 쓰는 사람들은 많이 있겠지만

이제사 1.4를 벗어나려고 버둥대는 터라...*^^*

(쓰고 싶어두 기존 소스와의 유지 및 개발환경에 써보질 못했다는 핑계거리....)

 

@Override란 위에서 말한바와 같이 jdk5에서부터 추가된 annotion의 하나이다.

말그대로 상위 클래스에서 오버라이드한 메소드라는 것을 지칭한다.

 

public class HelloServlet extends HttpServlet{

@Override

public void doGet(HttpServletRequest request,HttpServletResponse response)

    throws IOException,ServletException{

    -- to_DO --

}

}

 

위의 경우 HelloServlet은 HttpServlet에서 정의한 doGet()을 오버라이드 하고 있다.

물론 @Override를 사용하지 않아도 되지만

 

이 때 @Override 를 붙임으로써 doGet() 가 상위클래스에서 오버라이드된 메소드임을 지정함으로써

개발자가 메소드명이나 파라미터를 잘못 쓰고 찾지 못하는 것을 방지해준다.

 

즉 @Override를 상위클래스에 정의되지 않은 메소드에 쓰는 경우 컴파일 에러를 발생하기 때문에

혹여나 발생할수 있는 문제의 소지를 예방할 수 있게 해주기 때문에

오버라이드한 메소드에 대하여 @Override라는  annotation을 써주는 것이 좋다.

 

 

 

 

 

Generic 사용하기..*^^*

개발 이야기/Java | 2008. 1. 23. 17:26
Posted by 시반

JDK 1.5부터 Gerneric라는 개념이 추가되었습니다.

 

이전에는 Collection 객체에 데이터를 넣고 뺄때 Object 타입을 사용했었죠..

즉 Collection 객체에 넣었을 때의 타입으로 캐스팅을 해서 사용합니다.

 

ArrayList list = new ArrayList();

list.add("test");

String value = (String)list.get(0);   // 꺼낼때 캐스팅 해야함.

 

하지만 Generic이라는 개념이 도입되면서 조금 바뀌게 되었네요.

type을 명확하게 정하지 않고도 type을 처리할 수 있는 C++의 템플릿과 비슷한 기능으로 사용법은 비슷합니만

다른 점은 <> 사이에 들어가는 type의 수만큼 class를 만드는 C++과는 달리 java에서는

하나의 class로 여러 type들을 처리합니다

 

실제로 collection 객체를 사용할때 하나의 객체에 서로 다른 타입을 넣어서 사용할 때는 잘 없습니다.

주로 한가지 타입의 객체만을 넣어서 사용합니다.

이때 실수로 다른것 넣을 수도 있습니다. 이런 부분은 컴파일 시에는 잡히지고 않고 실행시에만 발견 됩니다.

 

하지만 Generic 을 사용함으로써 컴파일시에 오류를 잡을 수 있으므로 더욱 견고한 코드를 만들 수 있겠져

이렇게 Generic를 사용하는 첫번째 이유는 생성시 사용할 타입을 지정할 수 있으므로 다른 타입의

객체를 실수로 사용하는것을 컴파일타임에 방지할 수 있다는 점에 있습니다

 

 ArrayList<String> list = new ArrayList<String>();
 list.add("1");
 list.add("2");
 String value = list.get(0);            

 

 

위의 예에서  list엔 String만이 들어갈것을 선언하였기에 값을 집어넣을때도 String형만을 넣을수 있습니다.

반대로 꺼낼때는 String형으로 반환됩니다.

즉  반환타입이 지정되어 있기 때문에 이전과는 달리 꺼낼때 캐스팅이 필요 없다는 겁니다.

 

 

이렇게 Collection에서 객체를 꺼낼때 캐스팅 없이 꺼낼수 있다는 점이 Generic을 사용하는 또하나의 장점이 될 수 있겠죠.

 

Generic을 쓰는 또하나의 이유는 Auto Boxing과 Auto UnBoxing일겁니다

자바는 객체지향언어이지만 기본타입들은 객체가 아닙니다. 그래서 이들에 대한 Wrapper클래스들을 자바에서는 제공하고 있습니다.

 

int num1 = 1;


Integer num2 = new Integer("2");

int num = num1+num2.intValue();

 

 

기존의 경우 기본타입을 객체로 사용하기 위해서 wrapper class에 담고 이후에


다시 기본형값을 사용하고자 할때는 wrapper Class에서 그 값을 반환하는 작업이 필요했지만

5.0 이후부터는 이러한 부분이 자동으로 이루어진다는 점(조아조아)

 


int num1 = 1;


Integer num2 = 2;      //auto Boxing

int num = num1+num2; //auto UnBoxing

 


Generic과 관련해보면


  
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("1", new Integer(1));
map.put("2", 2);            // auto boxing
 
Integer i = map.get("1");   // 따로 캐스팅이 필요 없다.
int j = map.get("2");       // auto unboxing


이렇게 별도의 캐스팅 없이 처리할 수 있다는 점에서 좋아졌네요..

 


 

 

jxl을 통한 엑셀 저장하기

개발 이야기/Java | 2008. 1. 16. 14:08
Posted by 시반

먼저 관련사이트 에서 jexcelapi 를 다운받는다.

압축파일을 열어보면 관련 javadoc 및 소스파일도 함께 있으니 참고하시길...

여하튼 jxl.jar 파일을 관련 프로젝트에 등록한다.

 

<관련 클래스 간략설명>

jxl.write.WritableWorkbook : workbook,sheet등을 생성 및 관리하기 위한 엑셀파일관리 추상 클래스

jxl.Workbook : 기본 엑셀파일 추상 클래스

jxl.write.WritableSheet : sheet를 관리하는 인터페이스

jxl.write.WritableCellFormat : 엑셀 내 cell관련 포맷정보

jxl.write.Label : 엑셀내 필드명(엑셀의 cell에 들어있는 데이타 값이라 생각하면 된다)

jxl.write.Blank : 빈 cell관리 클래스

 

<엑셀 처리>

1. 엑셀파일을 생성한다

 WritableWorkbook testExcel = Workbook.createWorkbook(new File("sample.xls"));

 

  기존의 엑셀파일을 읽어와 처리하고자 하는 경우에는 다음과 같다.

 

 WritableWorkbook testExcel = Workbook.getWorkbook(new File("sample.xls"));

 

2. 생성된 엑셀관리 객체의 sheet를 선택한다

 WritableSheet sheet1 = testExcel.createSheet("1stShell", 0);

  위의 경우 새로이 생성된 엑셀파일내 새로운 sheet를 추가하는 것이라면

 기존의 생성된 특정 sheet를 선택하고자 하는 경우 다음과 같다

 WritableSheet sheet0 = testExcel.getSheet("preShell") ;

 

3. 셀서식을 설정한다     

WritableCellFormat titleFormat= new WritableCellFormat(); 

 - 폰트 설정

WritableCellFormat은 쉘정열 및 테두리설정 및 배경색 등 셀서식과 관련된 설정을 할 수 있다.

폰트 설정의 경우 다음과 같이 처리한다.

 

WritableCellFormat titleFormat
  = new WritableCellFormat(
           new WritableFont (WritableFont.ARIAL,              //폰트 타입.Arial 외 별다른건 없는듯 하다.
                                 20,                                          //폰트 크기
                                 WritableFont.BOLD,                  //Bold 스타일
                                 false,                                      //이탤릭체여부
                                 UnderlineStyle.NO_UNDERLINE, //밑줄 스타일
                                 Colour.WHITE,                         //폰트 색
                                 ScriptStyle.NORMAL_SCRIPT)); //스크립트 스타일

 

폰트 설정의 경우 위와 같이 Font설정 객체를 생성한후 서식객체 생성시 인자로 넣으면 된다.

다양한 생성자를 제공하고 있으니 굳이 위화면과 같이 할 필요는 없다. (API 참조)

 

-셀 서식 설정

기타 셀서식과 관련 주로 사용하는 기능을 설명하면 다음과 같다.

     titleFormat.setAlignment(Alignment.CENTRE);                     // 셀 가로정열(좌/우/가운데설정가능)
     titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE); // 셀 세로정렬(상단/중단/하단설정가능)
     titleFormat.setBorder(Border.ALL, BorderLineStyle.THICK);  // 보더와 보더라인스타일 설정
     titleFormat.setBackground(Colour.ICE_BLUE);                    // 배경색 설정

4. 데이타를 셀에 등록한다

 Label title = new Label(0, 0, "테스트 타이틀",  titleFormat);  //라벨(열,행,"문장",포멧) : 숫자형은 Number를 사용
 sheet1.addCell(title);                                                // sheet1의 1열1행에 "테스트 타이틀"이라는 데이타를 넣는다

 

--> 데이타 등록을 위한 Label 생성시 첫번째 인자는 sheet의 열, 두번째 인자는 행을 의미한다는 것에 주의...

 

5. Sheet 디자인 설정(*^^*)

이부분은 해도 그만 안해도 그만이지만 깔끔한 엑셀저장을 위한 선택코스?

 

-셀 크기 변경

관련메소드는 setColumnView(몇번째 컬럼, 넓이)
   sheet1.setColumnView(0, 20); //sheet1의 첫번째 열의 크기를 20으로 설정한다

또는

  CellView cv = sheet1.getColumnView(0);

  cv.setSize(30);                    

  sheet1.setColumnView(0,cv);    //기존의 열정보 변경. 30으로 변경한다  

 

- 셀병합

   sheet1.mergeCells(0, 0, 5, 0 ); //sheet1의 1열1행의 cell을 6열1행의 셀까지 병합한다.

 

- 빈 셀 처리 

  Blank blank = new Blank(6, 0, titleFormat); // 빈 셀(열,행,포멧)

  sheet1.addCell(blank);                             // 위의 병합셀옆에 같은서식의 빈셀추가

 

6. 데이타를 파일에 저장한다. 

   testExcel.write(); // 쓰고

   testExcel.close(); // 닫자

 

서두에서 밝힌바와 같이 기타 관련 API의 내용은 압축파일내 docs 디렉토리 밑에 나와 있어여..

'개발 이야기 > Java' 카테고리의 다른 글

@Override 사용하기  (0) 2008.01.24
Generic 사용하기..*^^*  (0) 2008.01.23
JAVA API Chm파일 다운로드 링크  (0) 2007.12.21
[JBoss 보안] DataSource 패스워드 암호화  (0) 2007.06.26
[java] 예약어 enum  (0) 2007.06.04
 

이클립스로 JAVA API 열기

개발 이야기/이클립스 | 2007. 12. 21. 14:48
Posted by 시반

인터넷을 돌아다니다 이클립스에서 클래스의 API문서를 열수있도록 하는 기능이 있다는 사실을 알게되어 소개한다

출처는 무소유 평상심 님의 블로그입니다.

사용된 Eclipse SDK Version: 3.1.1라고 하셨는데 상위 버젼에서도 동일한 설정을 유지하고 있더군여

제가 확인한건 3.1.2 와 3.2.1 이었습니다.

 

Eclipse에서 해당 API문서를 볼수 있는 방법은 Java Class에 커서를 놓고 Shift + F2 누르면  됩니다.

하지만 그러기 위해선 간단한 설정이 필요하다는 거...

 

기본적으로 세팅을 하지 않는다면 다음과 같은 화면이 나오게 됩니다.

 

 


해결 방법은 해당 프로젝트를 선택하고  마우스로 Right Button을 Click하여 Popup을 호출하여

Properties Window를 호출합니다.

 

 

오른쪽의 Java Build Path 를 클릭하고 JRE System Librart의 트리를 확장하여 rt.jar 트리도 확장을 하면 Javadoc location이라는 속성이 보인다. 클릭하여 Edit버튼을 클릭하여 아래와같이 값을 세팅합니다.

 

 

위의 화면의 경우 java API가 있는 경로를 지정해주는 경우입니다만 웹URL인 경우엔 혹여나 인터넷이 끊겨있다면 볼수 없구

그래서 로컬로 지정했습니다. documenatation을 풀고 위 화면처럼 경로명을 지정해도 됩니다만

전 다음과 같이 압축된 파일형태로 지정했습니다.

 

 

Archive path는 압축파일 위치를 말하는 거구 Path within archive는 압축파일내 api 위치를 말합니다.

첨에 압축파일만 지정하면 되는줄 알았는데 빈 페이지만 뜨더군여.

아래항목에 대하여 browser 버튼을 클릭하면 압축파일내 파일정보가 표시됩니다.

기본적으로 api가 위차하는 폴더가 표시됩니다(위의 화면의 docs/api)

결국 기냥 닫으면 docs/api로 설정.

그럴거면 기냥 디폴트값으로 압축파일을 선택시 지정되었슴 편했을거라는 생각도 잠시 해봤습니다.

 

적용하여 JRE Class변수에서 Shift + F2를 누르면  클래스의 API로 이동한 익스플로러 창이 열리게 됩니다.

F1을 누를 경우엔 이클립스 내부에서 Java API로 연결하여 볼수 있습니다.

 

 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)