반응형

경력 단절 9년여만에 프로그래밍을 새로 공부 해 볼까 싶어 시작한 파이썬.
정리 차원에서 하는 포스팅이라 음슴체로 간략하게 기록 예정.

파이썬(Python) 개요


1. 파이썬(Python) 특징
  - 대화형 인터프리터 언어
  - 데이터 타입 지정이 필요없는 동적 타이핑
  - 플랫폼에 독립적
  - 확장성이 높음
  - 오픈소스

2. 장점
  - 다른 프로그래밍 언어에 비해 문법이 쉽고 간단함
  - 유지보수가 쉬움
  - 타 언어에 비해 적은 소스코드로 프로그래밍이 가능하므로 생산성이 높음
  - 수많은 라이브러리 제공
  - 무료이지만 기능이 강력함

3. 단점
  - 환경이 익숙하지 않음
  - 하드웨어와 밀접한 환경에서 기능과 성능이 떨어짐
  - 모바일 웹 환경에서 취약

==> 프로그래밍을 접해 본 사람이라면 쉽게 접근할 수 있음
       초보자라 할 지라도, 다른 언어보다는 접근이 용이할 것으로 생각됨
       프로그래밍 언어가 뭐 다 거기서 거기지~ 하며 일단 도전!!

파이썬(Python) 설치

1. 파이썬 공식 홈페이지에서 프로그램을 다운로드
    https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org


Downloads 메뉴에서 본인의 환경에 맞는 프로그램을 다운로드
(본인은 Windows용 프로그램을 다운로드함)
버전은 2.x와 3.x가 있는데 문법이 다르다고 함
3.x 버전으로 다운로드 받으면 됨


2. 다운로드받은 프로그램을 실행하여 설치 시작
하단의 'Add python.exe to PATH'를 체크함
초보라면 'Install Now'로 간단히 설치해도 됨
본인은 특정 경로에 설치하기 위해 'Customize installation'을 선택함


3. 'Next'를 클릭함


4. 설치 경로를 본인이 원하는 경로로 지정 후 'Install' 버튼 클릭


5. 설치가 완료되면 'Close' 버튼을 클릭


6. 윈도우 모양의 '시작' 버튼을 클릭하면 설치된 파이썬 프로그램을 확인 할 수 있음
  - IDLE : 파이썬의 표준 GUI 대화식 인터프리터 쉘
  - Python : DOS 창에서 실행되는 파이썬 대화식 인터프리터
  - Python Manuals : HTML 형식의 파이썬 문서(튜토리얼, 설치 및 사용방법, FAQ 등)
  - Python Module Docs : 파이썬 모듈 소스


7. 기본적으로 IDLE를 실행하여 간단한 기능을 테스트
   (1+2, 3*5, 6/2, 'Hello' 등을 입력하면 결과값을 보여줌 - 대화식 인터프리터)


File > New File 새파일을 열어 소스를 작성하고 저장 후 실행할 수 있음
(예제) test.py
print(1+2)
print(3*5)
print(6/2)
print(3**2)
print('Hello')


오늘은 여기까지......
앞으로 공부한 내용은 천천히 정리 예정임

반응형
 

[VI] vi에서 ^M 제거

[공부]/컴퓨터 | 2014. 7. 22. 09:13
Posted by 주야양
반응형

윈도우에서 작업한 파일을 유닉스 계열에 업로드하면 라인 마지막에 ^M 이 붙는다.

삭제하지 않아도 상관은 없지만 xml 파일 같은 경우에는 영향을 받는다고 한다.

 

아무튼 눈을 어지럽게 만드는 이 문자열을 vi로 제거하는 방법

==> %s/^M//g


※ ^M은 Ctrl+V,M으로 입력

 

참고로 ^M 문자를   엔터(\n) 으로 치환 하는 방법

==> %s/^M/\n/g

 

반응형
 

[JAVA] JDK 1.6 및 이하 버전 다운로드

[공부]/컴퓨터 | 2014. 7. 15. 10:25
Posted by 주야양
반응형

현재 오라클 공식 사이트에서는 7, 8 버전만 다운로드가 가능하나,

 

아래 링크를 통하여 그 이전 버전을 다운로드 받을 수 있다.

 

http://www.oracle.com/technetwork/java/javase/archive-139210.html

 

다만, 보안 업데이트가 안 되므로 권장하지는 않는다고 하는데,

그래도 필요하면 써야하니까 일단은 알아두자!!

 

WARNING: These older versions of the JRE and JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production.

반응형
 

[DB] 오라클 시스템 테이블 정보

[공부]/컴퓨터 | 2012. 5. 31. 14:08
Posted by 주야양
반응형

가끔 사용하게 되는 오라클 시스템 테이블 정보..

 

구분

테이블명

설명

오브젝트 USER_OBJECTS (OBJ) 모든 오브젝트에 대한 정보를 지원 오즈젝트 유형, 작성시간, 오브젝트에 사용된 최종 DDL 명령, alter, grant 및 revoke 등
테이블 USER_TABLES (TABS) 테이블에 대한 정보
USER_TAB_COLUMNS (COLS) 컬럼에 대한 정보
USER_VIEWS 뷰에 대한 정보
동의어 USER_SYNONYMS (SYN)
시퀀스 USER_SEQUENCES (SEQ)
제약조건 USER_CONSTARINTS
제약조건열 USER_CONS_COLUMNS 제약 조건을 가진 열에 대한 정보
제약조건의 예외사항 EXCEPTIONS 제약조건을 활성화시 에러사항에 대한 정보
테이블 주석 USER_TAB_COMMENTS 테이블/뷰에 대한 주석
열 주석 USER_COL_COMMENTS 열에 대한 주석
인덱스 USER_INDEXES (IND) ( 인덱스에 관한 정보)
인덱스 열 USER_IND_COLUMNS 인덱스열에 대한 정보
클러스터 USER_CLUSTERS (CLU) 클러스터와 관련된 정보
데이터베이스 링크 USER_DB_LINKS 링크에 관련된 정보
스냅샷 USER_SNAPSHOTS
스냅샷 로그 USER_SNAPSHOT_LOGS
트리거 USER_TRIGGERS
프로시저, 함수 및 패키지 USER_SOURCE
코드 오류 USER_ERRORS
테이블스페이스 USER_TABLESPACES
영역 할당량 USER_TS_QUOTAS 테이블스레이스 단위로 사용자가 이용할 수 있는 영역의 최대크기와 할당된 영역의 크기 파악에 대한 정보
세그먼트와 익스텐트 USER_SEGMENTS
USER_EXTENTS
여유 영역 USER_FREE_SPACE 현재 여유로 표시된 영역이 얼마인지에 대한 정보
사용자 USER_USERS
자원 제한량 USER_RESOURCE_LIMITS
테이블 권한 USER_TAB_PRIVS
열 권한 USER_COL_PRIVS
시스템 권한 USER_SYS_PRIVS  

 

[출처] 오라클 시스템 테이블

반응형
 

[인니어 열번째] 동사 (Verba)

[공부]/인니어 | 2011. 8. 11. 02:32
Posted by 주야양
반응형
1. 동사 특징
  • 시제나 수와 상관없다.
  • 시제를 나타내는 부사나 형용사는 과거, 현재, 미래, 완료를 나타낸다.

 

  • 현재를 나타내는 부사 (문장 앞이나 뒤에 위치)

      - sekarang (지금) / hari ini (오늘) / pada waktu (masa) ini (요즈음) / dewasa ini (현재)

  • 과거를 나타내는 부사 (문장 앞이나 뒤에 위치)

      - dahulu, dulu (이전에) / kemarin (어제) / tadi (방금 전) / tadi malam (지난 밤) / tadi pagi (오늘 아침) /
        minggu yang lalu (지난 주)

  • 미래 시제 (동사 앞에 위치)

      - akan (~할 것이다, shall) / mau, hendak (~을 원하다, want to)

  • 완료 시제 (동사 앞에 위치)

      - sudah, telah (이미 -했다, already)


2. 동사 유형

  • 접두사가 붙지 않는 단순 동사

      - 예 : bangun, datang, duduk, hidup, ingat, ingin, jatuh, kawin, keluar, kembali, lalu, lewat, lari, lupa, maju, makan,
              mandi, masuk, minum, mundur, naik, pergi, pindah, pulang, sampai, singgah, suka, terbang, terbit, tidur,
              tinggal, tumbuh, turun

  • 기본형에 접두사 ber-가 붙는 동사

      - 주로 목적어를 필요로 하지 않는 자동사
         - 예 : berangkat, berbicara, berdiri, bergerak, berhenti, berjalan, berkata, berlati, bermain, bertanya, bertemu
      - 의미 : mempunyai, memakai, melakukan kegiatan. naik, mengeluarkan
         - 예 : belajar, bermain, bersepeda, bermobil, berkeringat, berdarah
      - 유형 : ber-, be-, bel-
         - 예 : bernama, beristri, berenang, bekerja, belajar

  • 기본형에 접두사 me-가 붙는 동사

      - 주로 목적어를 갖는 타동사
      - 유형 : mem-, men-, meng-, meny-, menge-, me-
        - mem- : 기본형이 b, f, v, p로 시작하는 동사 (p로 시작하는 경우 p는 생략, 예외도 있음)
           - 예 : membuat (buat), memfitnah (fitnah), memveto (veto), memakai (pakai), memproduksi (produksi)
        - men- : 기본형이 d, c, j, z, t로 시작하는 동사 (t로 시작하는 경우 t는 생략)
           - 예 : mendapat (dapat), mencari (cari), menjual (jual), menziarah (ziarah), menulis (tulis), menari (tari)
        - meng- : 기본형이 g, h, a, i, u, e, o, k로 시작하는 동사 (k로 시작하는 경우 k는 생략)
           - 예 : mengganggu (ganggu), menghukum (hukum), mengambil (ambil), mengulang (ulang), mengisi (isi),
                   mengeja (eja), mengobrol(obrol), mengirim (kirim), mengira (kira)
        - meny : 기본형이 s로 시작하는 동사 (s는 생략)
           - 예 : menyipam (simpan), menyewa (sewa), menyisir (sisir)
        - menge- : 기본형이 1음절인 동사
           - 예 : mengebom (bom), mengecat (cat), mengelap (lap), mengetik (tik), mengepel (pel)
        - me- : 기본형이 m, n, ny, ng, y, l, r, w로 시작하는 동사
           - 예 : memulai (mulai), menanti (nanti), nemyanyi (nyanyi), menganga (nganga), meyakin (yakin),
                   melihat (lihat), meraba (raba), mewejang (wejang)


3. 명령어

  • '!'는 명령문을 의미
  • 동사 원형으로 표현

      - 예 : Duduk / Masuk! / Keluar! / Pergi! / Bangun! / Turun!

  • 접미사 -lah를 붙여 사용

      - 예 : Duduklah! / Masuklah, Mbak! / Pergilah! / Duduklah!

  • 'silakan'을 붙여 공손한 요청이나 권유를 표현

      - 예 : Silakan duduk! / Silakan masuk, Pak Arif! / Silakan makan! / Silakan pergi sekarang!

  • 제안이나 권유는 'mari (kita)'를 붙여 표현

      - 예 : Mari (kita) duduk di sini. / Mari (kita) berangkat sekarang. / Mari (kita) makan. / Mari ke sini.

  • 'jangan'을 붙여 금지(~하지 마세요) 표현

      - 예 : Jangan berdiri di muka pintu! (문 앞에 서 있지 마세요!) / Jangan datang pagi ini! (오늘 아침에 오지 마세요!) /
              Jangan minum air yang kotor ini! (이 더러운 물을 마시지 마세요!) / Jangan duduk di luar! (밖에 앉지 마세요!)


<단어 정리>

  • kawin : 결혼하다
  • mundur : 후퇴하다, 후진하다
  • singgah : 머무르다, 들르다
  • terbit : 떠오르다, 뜨다
  • tumbuh : 자라다, 성장하다
  • fitnah : 비방, 모략
  • veto : 거부
  • ziarah : 참배, 성묘 순례
  • lap, pel : 걸레, 행주
  • nganga : 입을 딱 벌린, 아연하여
  • yakin : 확신하는, 성실한
  • raba : 손으로 더듬다, 찾다
  • wejang : 충고, 교훈, 지시
반응형
 

[자바] Java DB

[공부]/컴퓨터 | 2011. 4. 26. 04:05
Posted by 주야양
반응형

개인적으로 달력을 보완하고 있는데 양력-음력 변환을 위하여 DB를 사용하기로 했다.
기존 SmallSQL의 경우 자료가 많아지면 속도가 현저히 떨어지는 문제가 있어 여러가지 DB를 시험중이다.

<Java DB 개요>
Java DB는 자바로 만들어진 라이트웨이트 DBMS이다.
아파치 더비(Apache Derby)는 Java DB의 핵심기술이다.
현재 Sun에서 지원하고 있다. (Java 6버전의 릴리스를 시작으로, Sun은 JDK에 Java DB를 패키지 하기 시작했다.)

JavaDB의 특징은 Apache Derby의 특징과 같다.
1. base engine과 JDBC driver 모두 합쳐 2메가바이트
2. 자바와 JDBC, SQL을 기초로 만들어짐
3. client/server 모드를 Derby Network Client JDBC driver and Derby Network Server를 통해 지원 가능
4. 설치 및 디플로이, 사용이 편함

또한 JavaDB는 다음과 같은 환경에 적합하다고 소개되어 있다.
- 자바 애플리케이션 개발 및 테스트, 임베디드 애플리케이션, 멀티 플랫폼 환경, Web 2.0 기반의 브라우져 based 환경, PDA와 같이 J2ME CDC에서 돌아가는 애플리케이션

<Java DB 설치 및 DB 생성>
1. Java DB를 다운로드 받아 설치한다.
   ☞ http://www.oracle.com/technetwork/java/javadb/downloads/index.html
   단, 이미 Java SE(JDK 6)이 설치되어 있으면 이미 C:\Program Files\Sun\JavaDB 경로에 설치되어 있다.

2. 환경변수를 셋팅한다. JDK 설치시 이미 설치되어 있으므로 아래와 같이 설정한다. 
   - DERBY_HOME => C:\Program Files\Sun\JavaDB
   - Path                 => %DERBY_HOME%\bin;
   만약, 다운로드 받아 설치했다면, 매뉴얼의 DERBY_HOME =>c:\Derby_10, Path => %DERBY_HOME%\bin로 한다.

3. DB 생성 (실행 > cmd)

C:\Users\Administrator>cd %DERBY_HOME%
C:\Program Files\Sun\JavaDB\bin>ij
ij 버전 10.4
ij> connect 'jdbc:derby:juya_calendar;create=true';
ij> create table juya_calendar(num INT, yyyy INT, mm INT, dd INT, lyyyy INT,lmm INT, ldd INT, holiday varchar(100), memo varchar(100));
0행이 삽입됨/갱신됨/삭제됨
ij> select * from juya_calendar;
NUM        |YYYY       |MM         |DD         |LYYYY      |LMM      |LDD      |HOLIDAY      |MEMO
---------------------------------------------------------------------------------------------
0행이 선택되었습니다.
ij> exit;
C:\Program Files\Sun\JavaDB\bin>

- Java DB(Derby)가 설치된 위치의 bin 하위에 DB가 생성된다.
  (내 경우는 'C:\Program Files\Sun\JavaDB\bin\juya_calendar')

4. 자바 프로그램에서의 사용은 SimpleApp 로 대체한다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class SimpleApp
{
   
/* the default framework is embedded*/
   
public String framework = "embedded";
   
public String driver = "org.apache.derby.jdbc.EmbeddedDriver";
   
public String protocol = "jdbc:derby:";

   
public static void main(String[] args)
   
{
       
new SimpleApp().go(args);
   
}

   
void go(String[] args)
   
{
       
/* parse the arguments to determine which framework is desired*/
        parseArguments
(args);

       
System.out.println("SimpleApp starting in " + framework + " mode.");

       
try
       
{
           
/*
               The driver is installed by loading its class.
               In an embedded environment, this will start up Derby, since it is not already running.
             */

           
Class.forName(driver).newInstance();
           
System.out.println("Loaded the appropriate driver.");

           
Connection conn = null;
           
Properties props = new Properties();
            props
.put("user", "user1");
            props
.put("password", "user1");

           
/*
               The connection specifies create=true to cause
               the database to be created. To remove the database,
               remove the directory derbyDB and its contents.
               The directory derbyDB will be created under
               the directory that the system property
               derby.system.home points to, or the current
               directory if derby.system.home is not set.
             */

            conn
= DriverManager.getConnection(protocol +
                   
"derbyDB;create=true", props);

           
System.out.println("Connected to and created database derbyDB");

            conn
.setAutoCommit(false);

           
/*
               Creating a statement lets us issue commands against
               the connection.
             */

           
Statement s = conn.createStatement();

           
/*
               We create a table, add a few rows, and update one.
             */

            s
.execute("create table derbyDB(num int, addr varchar(40))");
           
System.out.println("Created table derbyDB");
            s
.execute("insert into derbyDB values (1956,'Webster St.')");
           
System.out.println("Inserted 1956 Webster");
            s
.execute("insert into derbyDB values (1910,'Union St.')");
           
System.out.println("Inserted 1910 Union");
            s
.execute(
               
"update derbyDB set num=180, addr='Grand Ave.' where num=1956");
           
System.out.println("Updated 1956 Webster to 180 Grand");

            s
.execute(
               
"update derbyDB set num=300, addr='Lakeshore Ave.' where num=180");
           
System.out.println("Updated 180 Grand to 300 Lakeshore");

           
/*
               We select the rows and verify the results.
             */

           
ResultSet rs = s.executeQuery(
                   
"SELECT num, addr FROM derbyDB ORDER BY num");

           
if (!rs.next())
           
{
               
throw new Exception("Wrong number of rows");
           
}

           
if (rs.getInt(1) != 300)
           
{
               
throw new Exception("Wrong row returned");
           
}

           
if (!rs.next())
           
{
               
throw new Exception("Wrong number of rows");
           
}

           
if (rs.getInt(1) != 1910)
           
{
               
throw new Exception("Wrong row returned");
           
}

           
if (rs.next())
           
{
               
throw new Exception("Wrong number of rows");
           
}

           
System.out.println("Verified the rows");

            s
.execute("drop table derbyDB");
           
System.out.println("Dropped table derbyDB");

           
/*
               We release the result and statement resources.
             */

            rs
.close();
            s
.close();
           
System.out.println("Closed result set and statement");

           
/*
               We end the transaction and the connection.
             */

            conn
.commit();
            conn
.close();
           
System.out.println("Committed transaction and closed connection");

           
/*
               In embedded mode, an application should shut down Derby.
               If the application fails to shut down Derby explicitly,
               the Derby does not perform a checkpoint when the JVM shuts down, which means
               that the next connection will be slower.
               Explicitly shutting down Derby with the URL is preferred.
               This style of shutdown will always throw an "exception".
             */

           
boolean gotSQLExc = false;

           
if (framework.equals("embedded"))
           
{
               
try
               
{
                   
DriverManager.getConnection("jdbc:derby:;shutdown=true");
               
}
               
catch (SQLException se)
               
{
                    gotSQLExc
= true;
               
}

               
if (!gotSQLExc)
               
{
                   
System.out.println("Database did not shut down normally");
               
}
               
else
               
{
                   
System.out.println("Database shut down normally");
               
}
           
}
       
}
       
catch (Throwable e)
       
{
           
System.out.println("exception thrown:");

           
if (e instanceof SQLException)
           
{
                printSQLError
((SQLException) e);
           
}
           
else
           
{
                e
.printStackTrace();
           
}
       
}

       
System.out.println("SimpleApp finished");
   
}

   
static void printSQLError(SQLException e)
   
{
       
while (e != null)
       
{
           
System.out.println(e.toString());
            e
= e.getNextException();
       
}
   
}

   
private void parseArguments(String[] args)
   
{
       
int length = args.length;

       
for (int index = 0; index < length; index++)
       
{
           
if (args[index].equalsIgnoreCase("jccjdbcclient"))
           
{
                framework
= "jccjdbc";
                driver
= "com.ibm.db2.jcc.DB2Driver";
                protocol
= "jdbc:derby:net://localhost:1527/";
           
}
           
if (args[index].equalsIgnoreCase("derbyclient"))
           
{
                framework
= "derbyclient";
                driver
= "org.apache.derby.jdbc.ClientDriver";
                protocol
= "jdbc:derby://localhost:1527/";
           
}
       
}
   
}
}

앗, 속도의 문제가......
나만 느린건가......




반응형
 
반응형

<실행 파일 및 설치 파일 생성 과정>
1. JAR 파일을 생성한다.
2. JSmooth와 JAR 파일을 이용해서 EXE 파일을 만든다.
3. Smart Install Maker로 설치 파일을 만든다.

앞서 InstallFactory로 설치 파일을 만들었었다.
생성된 설치 파일로 정상적으로 설치가 이루어졌지만 단축 아이콘의 실행에 문제가 생겼다.
SmallSQL이라는 외부 라이브러리를 통해, 프로그램 실행시 설치된 폴더의 DB를 읽어와야 했다.
설치된 폴더 안의 실행프로그램은 정상적으로 동작했다.
하지만 단축 아이콘으로 실행하는 경우 DB를 못 읽어와 바탕화면에 DB를 새로 생성하는 것이었다.
바탕화면의 아이콘은 단지 단축 아이콘이었는데, 이런 현상이 나타나는 이유를 알 수 없었다.
그래서 다른 프로그램을 알아보던 중 Smart Install Maker를 찾게 되었다.
사용법도 InstallFactory와 비슷하고 사용하기 편리하였다.
Smart Install Maker로 만든 결과 단축아이콘도 이상없이 잘 실행되었다.


<Smart Install Maker로 설치 파일 생성 방법>

1. 배포할 파일들(JAR/EXE 파일 필수)을 한 폴더에 넣어 준비한다.

2. Smart Install Maker 프로그램을 실행한다.

3. 좌측의 설치 프로그램과 제거 프로그램 항목들을 선택하여 필요한 내용을 설정한다.
<설치 프로그램>
- 메인 : 프로그램 이름, 버전, 회사명, 제목, 저작권, 설치파일 저장 위치, 설치파일 압축률 등을 설정한다.



- 파일 : 하단의 추가 버튼을 이용하여 배포할 파일들을 추가한다.



- 요구사항 : 프로그램 설치시 요구되는 운영체제와 .net Framework 버전 검사 등을 설정한다.



- 인터페이스
   - 일반 탭에서 프로그램 설치시 설치 화면에 표시할 대화상자를 체크한다. 프로그램 폴더와 프로그램 메뉴 그룹도 설정한다.



   - 설치 완료 탭에서 프로그램 설치 완료시 보여질 체크상자를 설정한다.



- 대화상자 : 설치 화면의 배경, 헤드, 로고, 언어, 아이콘을 설정한다.



- 바로가기 : 단축 아이콘을 설정한다. 바탕화면에 바로가기를 생성하거나 시작 메뉴의 프로그램 그룹을 추가할 수 있다.


   - 바로가기 항목 추가 : 바탕화면에 단축 아이콘 추가, 시작 메뉴에 프로그램 그룹 생성



- 실행 명령어 : 프로그램 설치 전/후 작업을 설정할 수 있다.
   - 프로그램 설치 후 JRE를 설치하도록 실행 명령어를 추가하였다.


   - 실행 명령어 항목 추가 : JRE 설치



<제거 프로그램>
- 설정 : 제거 프로그램과 관련된 사항을 설정한다.



4. 모든 설정이 완료되면 상단의 '설치 프로그램 생성' 또는 '설치 프로그램 실행' 버튼을 클릭하여 설치 프로그램을 생성한다.
   - 좌측이 설치 프로그램 생성, 우측이 설치 프로그램 실행 버튼이다.



이렇게 생성된 설치 프로그램을 배포하면 끝!! 

반응형
 
반응형

<실행 파일 및 설치 파일 생성 과정>
1. JAR 파일을 생성한다.
2. JSmooth와 JAR 파일을 이용해서 EXE 파일을 만든다.
3. InstallFactory 로 설치 파일을 만든다.

앞서 JAR 파일과 EXE 파일을 만들었다.
이 실행 파일은 JRE가 설치되어 있어야 실행시킬 수 있다.
다른 PC에서 실행시키기 위하여 JRE를 설치하고 EXE 파일을 포함하는 설치 파일을 만들어 보고자 한다.
다양한 툴이 있지만, 비교적 심플한 InstallFactory를 사용한다.


<InstallFactory로 설치 파일 생성 방법>

1. InstallFactory를 다운로드 받는다.


2. 다운받은 파일을 실행하여 InstallFactory를 설치한다.



3. 배포할 파일들(JAR/EXE 파일 필수)을 한 폴더에 넣고, 해당 폴더에서 마우스 우클릭하여 설치화일 만들기를 선택한다.
   시작 > 모든 프로그램 > InstallFactory 2.70 > InstallFactory 를 선택하여 프로그램을 실행할 수 있다.


4. InstallFactory가 실행된 화면이다. 


    새로운 프로젝트를 만든다.



5. 일반 탭에서 필요한 사항들을 설정한다.
   - 타이틀 : 인스톨 화면에 표시될 제목이다.
   - 소스 폴더 : 배포할 파일들을 모아 놓은 폴더를 선택한다.
   - 기본 설치 폴더 : 보통 Program files 밑에 설치하므로 콤보박스를 눌러 {ProgramFiles}를 선택한다.
   - 설치화일이 만들어질 폴더 : 설치 파일을 만들 폴더를 지정한다.
   - 설치화일의 이름 : Windows Vista 이상인 경우 setup이나 install이 들어가도록 넣는다.


<주의>
윈도 비스타부터는 사용자 계정 컨트롤(UAC) 등을 제공함으로써 보안 기능이 강화되어 있다. 보통 설치 파일들은 메니페스트에 사용자가 관리자 권한이 있어야 실행하게끔 하는 내용을 추가하는데 인스톨 팩토리는 이를 지원하지 않는다. 따라서 인스톨 팩토리에서 설치 파일을 만들 때에는 반드시 파일 이름 안에 setup이나 install과 같은 설치 파일임을 명시해 주는 낱말이 들어가 있어야 한다. (보기: setup.exe, iloveyou_setup.exe, game_install.exe) (출처 : 위키피디아)

6. 창 탭은 설치할 때 나타나는 창의 속성을 설정한다. (스킵해도 상관없다.)
   - 위자드 창 : 비트맵이 있으면 비트맵을 선택한다.
   - 배경창 : 머리글, 꼬리글, 배경색을 지정하고 미리보기로 확인한다.



7. 정보 탭에서 설치 프로그램이 실행될 때 보여지는 기본 정보를 설정한다. (스킵해도 상관없다.)



8. 단축 아이콘 탭에서 아이콘 정보를 설정한다.



9. 기타 화일, 레지스트리, INI 화일 탭에서 설정할 사항이 있으면 설정한다. (스킵해도 상관없다.)



10. 실행탭에서 설치시 실행할 사용자 설치프로그램을 설정한다.
     - JRE 프로그램을 설치하도록 설정한다. (해당 프로그램도 배포할 파일들을 모아 놓은 폴더 내에 있어야 한다.)



11. 제거 탬에서 제어판의 프로그램 제거를 실행했을 때 보여질 내용을 설정한다.
     - 제거에 체크하고 필요한 사항을 설정한다.



12. 모든 설정이 끝나면 상단의 설치화일 만들기 버튼을 클릭한다.

13. 완료되면 테스트 버튼을 클릭하여 설치를 테스트 해도 되고, 그냥 완료해도 된다.



이렇게 설치 파일까지 만들었다.
테스트 후 Juya Account(주야 가계부)는 자료실에 배포할 예정이다.
다시 또 열심히 자바 프로그래밍을 해서 설치 파일을 만들고 배포해야지~!!

반응형
 
반응형

<실행 파일 및 설치 파일 생성 과정>
1. JAR 파일을 생성한다.
2. JSmooth와 JAR 파일을 이용해서 EXE 파일을 만든다.
3. InstallFactory 로 설치 파일을 만든다.

앞서 이클립스에서 JAR 파일을 생성하였다.
이번에는 JSmooth 프로그램을 사용하여 앞서 생성한 JAR 파일로 EXE 파일을 만드는 과정을 설명한다.


<JSmooth와 JAR 파일로 EXE 파일 생성 방법>

1. JSmooth를 다운로드 받는다.
   http://sourceforge.net/projects/jsmooth/files/ (영문판)
   -> jsmooth-0.9.9-7.zip 나 jsmooth-0.9.9-7-setup.exe 를 다운받는다.
   한국어 버전도 있다. 이어지는 설명은 한국어 버전을 기준으로 한다.

jsmooth_ko-action1020.zip


2. 압축되어 있는 JSmooth의 압축을 푼다. (설치할 필요 없이 압축만 풀면 된다.)



3. 압축을 푼 폴더를 열어 jsmoothgen.exe를 더블클릭하여 실행한다.

<Skeleton>
- Skeleton 선택하기
  - Console Wrapper : 콘솔 프로그램인 경우 (EXE 파일 실행시 콘솔이 함께 실행됨)
  - Windowed Wrapper : GUI 프로그램인 경우 (Swing, SWT, AWT 등)
- Skeleton 등록정보
  - Launch java app in the exe process
  - Debug console
-> Skeleton 선택하기에서 오른쪽의 화살표 버튼을 눌러서 Windowed Wrapper를 선택한다. 
    Launch java app in the exe process 에도 체크한다.



<실행파일> : 실행파일 설정
- 실행가능한 바이너리 : 생성할 EXE 파일의 저장위치와 파일명을 입력한다. (Path\실행파일명.exe)
- 실행파일 아이콘 : 생성할 EXE 파일의 아이콘을 선택한다. 하단에 선택한 이미지가 나타난다.
- 현재 디렉토리 : 설정하지 않아도 된다.



<어플리케이션> : JAR 파일 설정
- Main 클래스 : JAR 파일의 메인 클래스를 지정한다.
                        (여러 클래스가 존재하는 경우 메인 클래스를 지정하지 않으면 에러가 발생한다.)
- 어플리케이션 인자들
- 클래스패스 : 오른쪽 추가 버튼을 클릭하여 이전에 생성한 JAR 파일을 선택한다.
-> 클래스패스(jar 파일 선택)를 먼저 설정하고 Main 클래스를 지정한다.


<JVM 고르기> : JVM 정보
- JVM 최소 버전 : 프로그램의 실행을 위한 JVM의 최소 버전으로, 자신이 사용한 java 버전으로 설정한다.
- JVM 최대 버전
- JVM 번들
- JVM 찾는 순서

 

 



<JVM 설정>
- 최대 메모리 : JVM이 사용할 최대 메모리 크기를 설정한다.
- 초기 메모리 : JVM이 사용할 초기 메모리 크기를 설정한다.
- Java 프로퍼티들 : 라이브러리를 추가해서 사용할때 설정한다.
-> 필요한 경우에만 설정한다.



4. 프로젝트 > 컴파일 메뉴로 컴파일한다.
   JSmooth 상단의 아이콘에서 톱니바퀴 모양의 아이콘을 클릭해도 된다.



5. jsmooth 설정을 저장한다. 나중에 지워도 상관없으므로 일단 저장한다.
 



6. 컴파일이 진행된다.



8. 지정한 위치에 EXE 실행파일이 생성되었다.



총 3개의 파일이 생성되었는데, JAR과 EXE파일은 항상 같이 배포되어야 한다.
jsmooth 파일은 삭제해도 상관 없다.
EXE 파일을 더블클릭하여 프로그램이 수행되는 것을 확인한다.
물론 EXE 파일과 JAR 파일이 같은 위치에 있어야 한다. 

이렇게 생성된 EXE 파일로 설치 파일을 만드는 과정은 다음 글에서......

 

반응형
 

[자바] 이클립스에서 JAR 파일 생성

[공부]/컴퓨터 | 2011. 4. 4. 15:52
Posted by 주야양
반응형

자바 프로그래밍을 하고 컴파일을 하면 클래스 파일이 생성된다.
하지만 매번 java 명령어로 실행시키기에는 너무 번거롭다.
다른 윈도우 프로그램처럼 더블클릭만으로 실행이 된다면 얼마나 편리할까?
JAR 파일을 만들면 이렇게 할 수 있다.
클래스 파일의 효율적인 배포를 위해 여러 클래스 파일들을 하나의 파일로 묶을 때 사용하는 포맷이 JAR이다.
JAR를 압축파일로 알고 있는 사람들이 종종 있는데, ZIP처럼 압축 파일이 아니라 단지 하나로 묶어 놓은 파일이다.

현재 만들고 있는 자바 버전 가계부를 예로 실행 파일과 설치 파일을 만드는 방법을 정리하고자 한다.
프로그래밍을 완료하고 실행 파일과 설치 파일을 만드는 과정은 아래와 같다.

1. JAR 파일을 생성한다.
2. JSmooth와 JAR 파일을 이용해서 EXE 파일을 만든다.
3. InstallFactory 로 설치 파일을 만든다.

세부적인 과정을 보자!!


<이클립스에서 JAR 파일 생성>

프로그래밍을 할 때, 다른 jar 파일을 사용하는 경우 이클립스에서 jar 파일을 생성하면 실행이 안 된다.
이런 경우, Runnable JAR file로 생성하면 간단하게 해결이 된다.
심지어는 main class(manifest.mf에 저장)를 설정할 필요조차 없다.
내부에 포함된 JAR 파일은 이클립스가 알아서 처리한다.
참고로 실행 명령어는 'java -jar file_name.jar' 이지만, 윈도우에서는 JAR 파일을 더블 클릭하면 실행이 된다.
참조 : http://savinglove.tistory.com/tag/jar%20export

1. 프로그래밍이 완료된 소스 파일을 Open한다.
   주야 가계부는 패키지로 만들었기 때문에 패키지 안에 소스 파일들이 있다.
   외부 JRE (smallsql.jar, jxl.jar)를 사용하고 있다.
   



2. JRE 파일을 만들기 위해 패키지를 선택하고 마우스 우클릭을 하여, Export...를 클릭한다.
   만약 패키지가 아니라 src 폴더 안에 바로 소스 파일이 있으면 src 폴더를 선택하여 Export...를 클릭한다.



3. Export 대화상자에서 Java > Runnable JAR file를 선택하고 Next 버튼을 클릭한다.
   만약 외부 JRE 파일이 없다면 JAR file을 선택해도 된다.
   (JAR file을 선택할 경우, 이후에 나타나는 대화상자가 다르다. 뒤에서 메인 클래스를 지정해 줘야 한다.)



4. Launch configuration과 Export destination를 설정하고 Finish 버튼을 클릭한다.
   - Launch configuration : 이미 외부 JRE 파일들을 포함하여 컴파일 되도록 설정되어 있다.
   - Export destination : 생성할 JAR 파일이 저장될 위치를 지정한다.



   Launch configuration 에서 설정되어 있는 실행 환경은 아래와 같다.
   - 실행 환경 설정은 Run > Run Configurations... 메뉴를 이용한다.
   - 대화상자에서 Java application에서 메인 클래스를 선택한다.
   - Classpath 탭의 User Entries에서 클래스패스를 선택하고 ADD JARs... 버튼을 클릭하여 JAR 파일을 추가한다.
   - User Entries에 외부 JAR 파일이 추가된 것을 확인할 수 있다.



이렇게 생성된 JAR 파일은 더블클릭하면 실행이 된다.
다음 단계는 다음 글에서......

반응형
 

블로그 이미지

주야양

소소한 일상에 대한 기록

카테고리

Juyayang's hiStory (492)
[가상화폐(암호화폐)] (114)
[정보] (29)
[리뷰] (7)
[여행] (72)
[취미] (37)
[공부] (23)
[결혼] (18)
[임신 및 출산] (86)
[육아] (34)
[KOICA] (41)
[일상 생활] (20)
[자료실] (7)