1
2
3
Byte[] bytes = (Byte[]) arrayList.toArray(); //  ArrayList -> Byte[]
 
arrayList = new ArrayList(Arrays.asList(bytes )); // Byte[] -> ArrayList
cs


(만약 프리미티브 byte[]로 전환하고자 하신다면, Bytes[X].byteValue() 를 X값을 루프를 돌면서 복사해주면됩니다.)


출처 : http://mungi.kr/177



1
2
3
4
5
6
7
8
9
10
11
12
13
14
        int Decint = Integer.parseInt(Dec); 
        byte [] bytes = {0x00,0x00};
        String hexto04="";
        String hex = Integer.toHexString(Decint);
        if(Decint<0)
        {
            hexto04 = hex.substring(hex.length()-4);
            bytes = new java.math.BigInteger(hexto04,16).toByteArray();
        }
        else if(Decint>0)
        {
            bytes = new java.math.BigInteger(hex,16).toByteArray();
        }
        return bytes ;
cs

출처 : http://ecogeo.tistory.com/129


위의 hexString to byte 같은 경우 음수가 들어오면 변환은 내가 대충 짜본것이다.



추가 

wrapper 가 아닌 primetive byte[] 전환 

1
2
3
4
byte [] bytes =  new byte[sendbyte.size()];
            for (int i = ; i<sendbyte.size();i++){
                bytes[i]= sendbyte.get(i);
            }
cs


다음 글은 이상훈 (http://blog.beany.co.kr/archives/3433#comment-10162)님의 글입니다 ... 정말 감사합니다 큰도움이 되었습니다.


Git Server 에서 프로젝트 가져오기

프로젝트 Import

Git Server 에서 프로젝트를 가져오기 위하여 상단의 메뉴에서 [File -> Import …] (1) 을 클릭합니다.
eclipse_git_import_project_1
Import 팝업창이 나타나면 [Git -> Projects from Git] (1) 항목을 선택한 후 [Next >] 버튼을 클릭합니다.
eclipse_git_import_project_2
Git Server 에서 가져오기 위하여 URI (1) 항목을 선택한 후 [Next >] 버튼을 클릭합니다.
eclipse_git_import_project_3
URI (1) 에 Git Server 의 프로젝트 URL 을 입력한 후 Authentication (2) 항목에 Git Server 계정을 입력한 후 [Next >] 버튼을 클릭합니다.
eclipse_git_import_project_4
[Next >] 버튼을 클릭합니다.
eclipse_git_import_project_5
Git 로컬 저장소 디렉토리를 확인한 후 [Next >] 버튼을 클릭합니다.
eclipse_git_import_project_6
Import existing projects (1) 항목을 선택한 후 [Next >] 버튼을 클릭합니다.
eclipse_git_import_project_7
생성할 프로젝트를 확인한 후 [Finish] 버튼을 클릭하면 프로젝트를 Git Server 로 부터 다운로드 받습니다.
eclipse_git_import_project_8
정상적으로 프로젝트를 가져오면 Package Explorer (1) 항목에 프로젝트가 생성되며, Git 로컬 저장소 (2) 도 생성되게 됩니다.
eclipse_git_import_project_9

다음 글은 http://blog.beany.co.kr/archives/3407#comment-10161 이상훈(imfjbh@gmail.com) 님의 글입니다. 

정말 큰 도움이 됬습니다 ㅠㅠ 


프로젝트 공유

Git 으로 공유할 프로젝트를 선택한 후 마우스 오른쪽 버튼을 클릭한 후 [Team -> Share Project … ] (1) 을 선택합니다.
eclipse_git_share_project_1
공유할 저장소를 Git (1) 으로 선택한 후 [Next >] 버튼을 클릭합니다.
eclipse_git_share_project_2
프로젝트 공유를 위한 Git 로컬 저장소를 생성합니다. [Create …] (1) 버튼을 클릭합니다.
eclipse_git_share_project_3
[Browse …] (1) 버튼을 클릭하여 로컬 저장소의 폴더 위치를 선택합니다. Name (2) 은 Git 로컬 저장소의 이름을 입력하시면 됩니다.
eclipse_git_share_project_4
Git 로컬 저장소 디렉토리가 정상적으로 설정되었는지 Repository (1) 항목과 Target Location (2) 항목을 확인한 후 [Finish] 버튼을 클릭합니다.
eclipse_git_share_project_5
프로젝트에서 마우스 오른쪽 버튼을 클릭한 후 [Team -> Add to Index] (1) 메뉴를 클릭합니다.
eclipse_git_share_project_6
Add to Index 명령을 실행하고 나서는 프로젝트의 하위 폴더 및 파일에 ‘?’ 표시에서 ‘*’ 표시로 변경됩니다.
eclipse_git_share_project_7
프로젝트에서 마우스 오른쪽 버튼을 클릭한 후 [Team -> Commit …] (1) 항목을 클릭합니다.
eclipse_git_share_project_8
Commit message 를 입력한 후 [Commit] 버튼을 클릭하면 프로젝트가 정상적으로 Git 로컬 저장소에 반영되게 됩니다.
eclipse_git_share_project_9

프로젝트 Push

Git Server 에 프로젝트를 공유하기 위해서는 프로젝트에서 마우스 오른쪽 버튼을 클릭한 후 [Team > Push …] (1) 항목을 클릭합니다.
eclipse_git_share_project_push_1
URI (1) 항목에 Git Server 의 저장소 주소를 입력한 후 Authentication (2) 항목에는 발급받은 Git Server 의 계정을 입력하신후에 [Next >] 버튼을 클릭합니다.
eclipse_git_share_project_push_2
Source ref (1) 항목을 ‘refs/heads/master‘ 로 선택하시면 Destination ref (2) 항목도 자동으로 ‘refs/heads/master’ 로 만들어 집니다. [Add Spec] (3) 버튼을 클릭합니다.
eclipse_git_share_project_push_3
[Add Spec] 버튼을 클릭한 후에는 Specifications for push (1) 영역에 정상적으로 등록이 되었는지 확인한 후 [Next >] 버튼 또는 [Finish] 버튼을 클릭하여 Git Server 로 프로젝트 공유 설정을 마칠수 있습니다.
eclipse_git_share_project_push_4
Git Server 에 Push 관련 메시지를 확인한 후 [Finish] 버튼을 클릭합니다.
eclipse_git_share_project_push_5
정상적으로 Git Server 로 Push 가 수행되면 아래와 같은 메시지 창이 나타나며 [OK] 버튼을 클릭하여 설정을 종료합니다.
eclipse_git_share_project_push_6

처음부터 진행하는 법은 

http://www.tutorialbook.co.kr/entry/Synology-NAS-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-git-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0

여기를 따라서 한다. 서버 SSH 에서 URL 을 추가해서 하도록 한다.


clone 만들어서 서버 TEST 후 (중요 : synology Git 프로그램에서 사용자를 허용해야 한다)

http://itmir.tistory.com/461

위의 링크에서 두번째 방법으로 URL 추가한다.

쥔장======================================
java에서는 Properties 파일을 이용해서 각종 설정 값들을 세팅하여 활용할 수 있다.
이를 컨트롤 하여 환경 설정에 대해 원활한 작업이 되도록 해보자.
========================================== 

Properties 파일을 활용하기 위해서 library 를 추가한다.

import java.util.Properties;

또한 파일 처리를 하는 것이기 때문에 이에 대한 관련 library 도 필요하다.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import java.io.OutputStream;

이와 같이 선행 적으로 필요한 library 들을 설정하도록 하자.

이제 준비가 되었다면 Properties 파일을 읽고 쓰는 것에 대해서 확인하여 보자.

먼저 읽기 를 처리해보자.

// 당연히 Properties 를 활용하려면 객체를 선언해야지.
Properties prop = new Properties();

// 파일을 읽어들이기 위해 FileInputStream 을 이용한다.
// 당연히 파일을 읽으려면 파일의 경로가 필요하지.
// 예) /testsvr01/app/web/conf/setting.properties
InputStream fis = new FileInputStream("FILE_PATH");

// 해당 파일을 Load 하도록 하자.
prop.load(fis);

// stream 을 닫아주자.
fis.close();

// 읽어들이 properties 파일에서 원하는 값을 가져오자.
// ROOT_PATH는 properties에 정의해놓은 key이다.
String sRootPath = prop.getProperty("ROOT_PATH");

System.outprintln("ROOT PATH : [" + sRootPath + "]");

==> 결과 :  ROOT PATH : [/testsvr01/app/web/root]
      (setting.properties 파일에 ROOT_PATH=/testsvr01/app/web/root 라고 저장을 했다고 가정한다.)

간단하다. 어려운 것이 없다.




그럼 이제 쓰기를 해보자.

쓰기 또한 읽기처럼 간단하다. 과정도 똑같다~
 
// 당연히 Properties 를 활용하려면 객체를 선언해야지.
Properties prop = new Properties();

// 파일을 읽어들이기 위해 FileInputStream 을 이용한다.
// 당연히 파일을 읽으려면 파일의 경로가 필요하지.
// 예) /testsvr01/app/web/conf/setting.properties
InputStream fis = new FileInputStream("FILE_PATH");

prop.load(fis);

fis.close();

// 파일을 쓰기 위해 FileOutputStream 을 이용한다.
OutputStream fos = new FileOutputStream("FILE_PATH");

// 값을 설정하자.
prop.setProperty("ROOT_PATH", "
/testsvr01/app/web/root_2");

// 저장하자.
prop.store(fos, "comment");

// 스트림 닫자.
fos.close();



이렇게 파일을 저장 후 확인하여 보면
      (setting.properties 파일에 ROOT_PATH=/testsvr01/app/web/root_2 라고 저장이 되었음을 확인할 수 있다.) 



출처 : http://notgivuphil.tistory.com/505#rp

컨트롤+씨 키를 누르면 작업 수행 도중 프로그램이 종료 되어 버리므로 어떤 자원을 사용하고 있었다면 종료하지 못한 채 프로그램이 끝나버림으로서 추후 문제가 발생할 수도 있습니다.

Runtim 클래스의 addShutdownHook 메소드는 프로그램 종료시에 수행 할 쓰레드를 JVM에 알려주는 역할을 합니다. 즉 프로그램이 종료 되기전에 자원을 반환해야 하는 경우(Database 연결, File Close)가 있다면 여가에서 Thread를 만들어 처리를 하시면 됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Shutdown implements Runnable{
    public void run(){
        System.out.println("system down");
    }    
    public static void main(String[] args) throws Exception {
        Runtime r = Runtime.getRuntime();
                
        //프로그램 종료시(CTRL+C를 누르는 경우도 해당)실행 할 쓰레드를 JVM에 알려 줍니다.
        r.addShutdownHook(new Thread(new Shutdown()));
 
        //1초 간격으로 "PRESS CTRL+C to EXIT"라는 문자열을 출력 합니다.
        for(int i=0; i<20; i++) {
            Thread.sleep(1000);
        }
    }
}
 
 
cs

[결과 : 실행 중 CTRL+C키를 누르세요~]

PRESS CTRL+C to EXIT

PRESS CTRL+C to EXIT

PRESS CTRL+C to EXIT

프로그램이 종료하게 되어  자원을 반환 합니다.


[출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=408



정말 감사합니다 ㅠㅠ 이런 황금같은 정보를 주시다니 ... 프레임에서 X종료 아이콘을 눌를때 반환을 해야하나 매우 걱정했는데 이런 황금같은 정보가 있어서 다행입니다 ...



(내용은 추후 추가) 

나같은 경우는 error에 buildConfig error가 떳는데

gen폴더에 생각 외로 본패키지 이외에 다른 패키지가 자동적으로 build Config가 생성되는지 몰랐다


결론 : gen 폴더에는 추가되는 소스의 peckege 밑에 buildConfig.java가 생성된다 [사실 건들지 말라고 경고되있지만]




두번째 문제는 항시 일어나던 Activity 소환도 못하고 급작스러운 종료인데,

나같은 경우는 maniafest.xml 파일에 처음 불러들이는 Activity에  android:name=".MainActivity" 가 원하는 activity 자바파일로 엮이지 않았기 때문이다.

아주 초보적인 실수였는데

Activity를 그리는 과정에서 Manifest와 Main.xml만 신경쓰다가 java에서도 activity를 연결해주는 코드가 있었다는 것을 간과했다 


setContentView(R.layout.main);


이 코드 인데 정말 아무 생각업이 잊고있던 코드다 ... 

'자바' 카테고리의 다른 글

메소드 ,참조변수 관리 진짜 힘드네 ...  (0) 2015.08.14
BuildConfig 애러시....  (0) 2015.07.29
자바 시험  (0) 2011.11.21
자바 4주차 수요일  (0) 2011.09.22
자바 첫시간  (0) 2011.08.29

'자바' 카테고리의 다른 글

메소드 ,참조변수 관리 진짜 힘드네 ...  (0) 2015.08.14
BuildConfig 애러시....  (0) 2015.07.29
안드로이드 main.xml 구현시 실수했던거  (0) 2015.07.29
자바 4주차 수요일  (0) 2011.09.22
자바 첫시간  (0) 2011.08.29

+ Recent posts