java.lang.NoClassDefFoundError 정말짜증이다..

class를 못찾을때 뜨는 에러인데..

보통은 이클립스나 델파이 같은 프로그램을 깔면서 클래스 path가

변경이 되어서 에러가 나는경우가 태반이다 때문에 해결점은..

java.exe 뒤에 -classpath. 이라고 쳐주면 된다..-_-;;

백만불 짜리팁!ㅋㅋ




zekill : 접때 보니 의헌이 형은 이미 그렇게 하고 있던것 같던뎅...ㅋㅋ
(2007-02-05 13:53:33) 
zekill : 음 그리고 클래스패스는 환경 변수에 세팅하다 보면 여러개 설치하고 할때 중복되기도 하고 얼핏 듣기로는 성능에도 좋지 않데...그래서 니가 말한데로 직접 필요한곳에 기재하는 방법이 더 좋다고 하더라구 그리고 나같은 경우 지금 여기작업하는곳이 이클립스에다가 마이이클립스라는 상용플러그인을 붙여서 작업 하거든 그래서 나같은 경우는 이클립스에다가 클래스경로를 다 세팅해놔 그러면 뭐 이클립스가 알아서 하니까 ㅋㅋ 이렇게 세팅하게 되면 작업 폴더에 .classpath 라는 파일이 생기고 거기에 xml형태로 클래스경로가 주우욱 나열되 아마 앞에 .이 붙는건 유닉스/리눅스에서 점이 붙는건 히든 파일이 되버리는데 그걸로 그냥 진행이 되서 그런것 같기도 하고 마지막으로 내가 실행시키는 이클립스 바로가기 보여줄꿰~~


C:\TEST\app\eclipse3.2\eclipse.exe -vm C:\TEST\app\java\jdk1.5.0_06\bin\javaw -data C:\TEST\workspace -vmargs -Xverify:none -Xms128m -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

이걸 바로 가기로 하나 만들어서 실행시켜 뭐 뒤에 저렇게 세팅해주고 하는게 작업할때 좀더 낳은 환경이 된다나 머라나...뭐 대충 자바VM경로랑 작업 파일 경로랑 메모리 사이즈 같은걸 미리 세팅해주는거얌 그냥 참고~ㅎ
(2007-02-05 14:00:21) 
2007/09/01 22:49 2007/09/01 22:49
eXtreme Programming 에 관한 사이트를  예전에 우연히 몇번 스치듯 보았다
참 이렇게 개발만 된다면 좋겠다라는 생각을 했었는데
내심 속으로 하지만 나의 환경에는 저런게 적용하기가 쉽지 않아...라며
지나치게 되었다 그러다 오늘 다시 생각이나 xp사이트를 둘러보다
어느 페이지를 보고 생각을 고쳐먹게 되었다

"Not For Us" ("우리를 위한 것은 아니다") - 어떤 기술이나 문화 등이 자신이 처한 상황에는 잘 맞지 않아서 적용 불가하다는 생각, 태도.

라고 적혀있다

http://xper.org/wiki/xp/NotForUs


한번 다시 생각해보아야 겠다~~
2007/09/01 22:48 2007/09/01 22:48
TAG , ,
벨로시티에서
#set ( $CODE_ENG_ABB     = "" )
#set ( $CODE_ENG_ABB     = $a )
위와 같은 식으로 값을 넣었을때 페이지 처리에는 문제가 없으나 로그에 아래와 같이 오류메세지가 표시되었을 경우는 초기화된 값이 ""와 같이 빈값이고 $a 라는 변수값을 입력했는데 $a에 빈값이 들어있을경우에 아래와 같이 Context will not be modified 라는 메세지가 나오면서 오류메세지가 뜬다.....물론 값이 수정되지 않았으니 메세지는 맞지만 저걸 에러라고 표시하는 이유가 뭔지는 모르겠다....-0-;;;;

실메세지는 아래와 같이 발생한다...아래는 내가 작업하다 난 메세지 -0-;;;
=============================================
ERROR - CommonsLoggingLogSystem.logVelocityMessage(43) | RHS of #set statement is null. Context will not be modified. admin/category/category_input.vm [line 24, column 8]
2007/09/01 22:47 2007/09/01 22:47
사실 스타일에 대해선 잘 모르는 나이기에 이런일이 발생하였다 ....ㅜㅜ

테이블에서 행 사이즈가 100이라고 가정할 경우
실 테이블의 행에 width를 100이라고 지정하고 스타일 패딩을 레프트10이라고 지정되면
실제로는 110의 사이즈를 갖게 된다


<style>
<!--
    .tbl_pad_l10 {padding-left:10px;}
    .tbl_pad_r10 {padding-right:10px;}
//-->
</style>

<table width="970"  border="0" cellspacing="0" cellpadding="0">
<COLGROUP>
  <COL width="65">
  <COL width="105">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
</COLGROUP>

<tr>
<td rowspan="2" align="center">TEST1</td>
<td class="tbl_pad_l10" align="left">TEST2</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
</tr>

</table>


위 테이블의 실사이즈는 1080이된다 제대로 사이즈가 출력되게 하려면 아래와 같이 사이즈를 수정해야한다.

<COLGROUP>
  <COL width="65">
  <COL width="95">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
</COLGROUP>


패딩은 셀 내부에 걸었는데 왜 위와 같이 되는건지 사실 아직도 이해가 되지 않는다..ㅜㅜ
2007/09/01 22:45 2007/09/01 22:45

javascript에서 DoEvents(?)

개발/HTML/CSS/JS 2007/09/01 22:45 posted by zekill
<script language="javascript">

function printTable(rst)
{
    //rst is array value

    var tblList     = document.getElementById("tblList");
    var nRow;
    var nCell;

    for(var i=0; i<rst.length; i++)
    {
        nRow = tblList.insertRow();
        nCell = nRow.insertCell(0);
        nCell.innerHTML = rst[i];
    }
}

/*
위와 같이 테이블에 Row를 추가하는 방법이 있다.(DHTML)
하지만 추가할 Cell이 많아지고 Row 또한 많아지게 되면
insertRow, insertCell 을 작업하는 동안 화면이 멈추게 된다.(무한루프 돌때나 다운이된경우처럼...)
좀 많이 루프를 돌면서 Table에 Row와 Cell을 추가하게 될 경우에 말이다.

그래서 고민하면서 찾게 된게...어차피 스크립트에서 스레드를 기대하기는 무리고
VB에서와 같이 DoEvents라는 메소드를 찾게되었다.
작업 진행 시간이야 어찌됐든 멈춰보이는것보다
작업이 진행되고있음을 알려주는것이 더 낳을거라 판단이 들었기때문이다.
*/


var g_tmrDrawID; //타이머 ID
var g_lstResult; //리턴 받은 결과값 저장
var g_nPosCurrentData = 0; //g_lstResult 결과 리스트 중 현재 작업 위치

function printTable(rst)
{
    //rst is array value

    //리턴값을 전역으로 저장
    g_lstResult = retVal;

    //현재 위치 초기화
    g_nPosCurrentData = 0;

    //타이머 초기화
    clearTimeout(g_tmrDrawID);

    //데이터 뿌려주는  함수 부르는  시키는 타이머 시작
    g_tmrDrawID = setTimeout("DrawTable()", 1);
}

function DrawTable()
{
    var tblList     = document.getElementById("tblList");
    var retVal     = g_lstResult; //전역으로 지정해놓은 리턴값을 로드
    var nRtnCount    = retVal.length; //리턴값 배열 갯수
    var i = g_nPosCurrentData; //g_lstResult 결과 리스트 중 현재 작업 위치
    var nRow;
    var nCell;


    nRow = tblList.insertRow();
    nCell = nRow.insertCell(0);
    nCell.innerHTML = retVal[i];

    //현재 위치가 리턴값 개수와 같지 않을 경우만 1ms 단위로 타이머 콜
    if(nRtnCount!=g_nPosCurrentData+1)
    {
        clearTimeout(g_tmrDrawID);
        g_tmrDrawID = setTimeout("DrawTable()", 1);
    }
    else
    {
        g_nPosCurrentData = 0; //현재 위치 초기화
        clearTimeout(g_tmrDrawID); //타이머 초기화
        g_lstResult = null; //전역 리턴값 초기화
    }

    //현재 위치 갱신
    g_nPosCurrentData++;
}

/*
찾다찾다 결국 못찾아 타이머를 이용해 만들어보기로 했다.
타이머를 이용해 행단위로 작업되기때문에 멈추지도 않고 쭈우우욱 삽입되는게 보여 생각한거랑
비슷하긴 하지만 한행 입력되는데 1ms의 텀이 있다는거~~~ ㅡㅡ;;;
작업되는시간까지 합치면 뭐 더 걸리겠지만...
할튼 그래도 시간이 좀 걸려서 그렇지 생각과 비슷하게는 만들어졌다.

타이머 콜을 제어하고 위치변수들을 제어하기 위해 소스가 원소스에 비해 두배이상 길어졌지만....
물론 DrawTable에 실작업되는부분은 try를 해서 예외처리를 해놓는것이 반복 요청등이나 뭐 그런 일이 생길때 유리하다
*/
</script>





사실 누구야 만들려한다면 못만들겠냐만은 이걸 만들기전에 자바스크립에서 DoEvents와 유사한 방법이 없을까 하는 방법들을 찾다찾다 VBScript를 찾다찾다(DoEvents는 당연 VB에서만 된다) 누가 유사하게 사용한거 없을까 찾다찾다 하도 생XX를 한게 생각이 나서....ㅋㅋ
2007/09/01 22:45 2007/09/01 22:45