애플리케이션 배포 방법 JAR 패키지 자바 웹 스타트

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

12 장 자바 애플릿. 2 Applet 개요 Applet 프로그램 – 웹 페이지에 포함되어 구동 된다. 웹 브라우저나 애 플릿뷰어 (appletviewer) 에서 실행되는 프로그램 – 웹 브라우저 내에 Applet 을 해석하여 실행할 수 있 도록 Applet 구동용 인터프리터가.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
Ch.07-5 xml-rpc 사용하기 김상엽.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
2. JSP의 환경설정 제 2장 JSP의 환경설정 웹 애플리케이션과 디렉토리 구성 JDK 설치하기 JSP Container
Power Java 제2장 자바 개발 도구.
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
Ch. 1 LINUX SYSTEM.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
한국골프대학 종합정보시스템 Windows Vista 사용자를 위한 Component 설치안내서
한국골프대학 종합정보시스템 Windows 7 사용자를 위한 Component 설치안내서
NCS 학사운영 시스템 Guide.
8장. 원격지 시스템 관리하기.
Visual Basic .NET 처음 사용하기.
1. C++ 시작하기.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
CHAP 12. 리소스와 보안.
[INA470] Java Programming Youn-Hee Han
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
자바응용.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
15차시_스마트 애플리케이션 기획 스마트 애플리케이션 모형 제작 및 발표.
27장. 모듈화 프로그래밍.
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
홀인원2.0 설치 메뉴얼.
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
2 보안 1 도구 윈도우 XP > 온밀크 프로그램 설치 장애 (보안 설정) / 품목추가 깨질 때 장애증상
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Day-27(Tue_10.16) 파일 서비스 설정 AD 가 설치된 환경에서 DHCP 설치 할 경우 권한 자격을 주어야함.
PC에 설치된 엔드포인트 클라이언트 프로그램을 클릭하여 프로그램 상자를 엽니다
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
자바 5.0 프로그래밍.
PL/SQL 코드 생성 및 수행 1 여러가지 환경 DOS에서 sqlplus Windows에서의 sqlplusw
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
암호학 응용 Applied cryptography
Introduction to JSP & Servlet
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
 파일 아카이브와 압축 명령 익히기.
여러 가지 집의 같은 점과 다른 점 비교하기 슬기로운 생활 2학년 1학기
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
숙제 작성 및 제출 과정 김진하 2008/03/14.
JAVA 프로그래밍 16장 JNLP.
AJAX? Cho Hyun Min.
Presentation transcript:

애플리케이션 배포 방법 JAR 패키지 자바 웹 스타트

애플리케이션 배포 로컬 로컬과 원격의 혼합형 (세미로컬) 원격 애플리케이션 전체가 최종사용자의 컴퓨터에서 실행 가능한 JAR로 배포된 독립적인 프로그램으로 실행됩니다. 로컬과 원격의 혼합형 (세미로컬) 애플리케이션의 일부분이 돌아가고 있는 서버와 사용자의 로컬 시스템에서 실행되면서 서버에 연결되어 작업을 처리하는 클라이언트 부분으로 나뉘어져 있습니다. 원격 자바 애플리케이션 전체가 서버 시스템에서 돌아가고 클라이언트는 웹 브라우저와 같은 자바를 사용하지 않는 방법을 통해서 서버에 접근합니다. 각각에 대해 설명한 후에…. 각각의 방법에 대해 알아보기 전에 사용자들에게 필요한 클래스 파일만 뽑아내는 방법에 대해 알아봅시다.

클래스 파일하고 소스 파일을 분리해놓는 방법은 없을까? 일일이 손으로 분리해내려니 정말 귀찮네. -d 컴파일 옵션 어? 어떻게 된 거지? 드디어 끝났구나… 클래스 파일하고 소스 파일을 분리해놓는 방법은 없을까? 일일이 손으로 분리해내려니 정말 귀찮네. % ls …… Account.class Account.java Account$FileListener.class Account$SaveListener.class

-d 컴파일 옵션 MyProject %cd MyProject/source %javac –d ../classes MyApp.java %javac –d ../classes *.java classes source %cd MyProject/classes %java MyApp 101101 11010101 10101101 1010111 0100110 101101 11010101 10101101 1010111 0100110 MyApp.class MyApp.java

JAR(Java ARchive) pkzip 파일 유형을 기반으로 합니다. manifest 파일을 통해서 main() 메소드가 들어있는 클래스를 알려주면 실행 가능한 JAR 파일을 만들 수 있습니다.

실행 가능한 JAR을 만드는 방법 클래스 파일이 모두 classes 디렉토리에 들어있는지 확인 main 메소드가 어떤 클래스에 들어있는지 알려주기 위한 manifest.txt 파일 만들기 Main-Class: MyApp jar를 실행시켜서 classes 디렉토리에 있는 모든 파일이 저장된 JAR 파일 만들기 %cd MyProject/classes %jar –cvmf manifest.txt app1.jar *.class %jar –cvmf manifest.txt app1.jar MyApp.class

JAR를 실행시키는 방법 JAR 파일의 압축을 풀지 않고도 프로그램을 실행할 수 있습니다. %cd MyProject/classes %java –jar app1.jar classes 101101 11010101 10101101 1010111 0100110 101101 11010101 10101101 1010111 0100110 101101 11010101 10101101 1010111 0100110 Main-Class: MyApp

패키지 똑같은 이름을 가진 클래스가 두 개 이상 있으면 아주 골치 아픈 상황을 맞닥뜨리게 됩니다. 클래스명 충돌을 막으려면 패키지를 적절히 활용하는 것이 좋습니다. 다른 사람들도 쓸 수 있는, 재사용성이 좋은 클래스를 만들고 싶다면 패키지를 활용하여 다른 클래스와 조화롭게 사용할 수 있는 형태로 구성해줘야 합니다.

java.text.NumberFormat java.awt.event.ActionEvent 패키지 java net text 101101 11010101 10101101 1010111 0100110 util awt 101101 11010101 10101101 1010111 0100110 101101 11010101 10101101 1010111 0100110 101101 11010101 10101101 1010111 0100110 event Socket NumberFormat 설명할 것 다 설명한 다음… 이렇게 만들어놓고 보면 패키지 계층 구조는 디렉토리 구조하고 같은 것 같죠? 잠시 후에 패키지 구조와 디렉토리 구조의 관계에 대해 알아볼 것입니다. ArrayList 101101 11010101 10101101 1010111 0100110 java.net.Socket FlowLayout java.awt.FlowLayout ActionEvent java.text.NumberFormat java.awt.event.ActionEvent java.util.ArrayList

패키지 명명법 패키지명 충돌 문제는 어떻게 해결해야 할까요? 역도메인 패키지명 패키지명 앞에 도메인명을 역순으로 쓰는 방법 headfirstjava.com 도메인을 사용하는 사람이 만든 Book이라는 클래스의 전체 이름 com.headfirstjava.Book headfirstjava.com 도메인을 사용하는 사람이 만든 projects라는 패키지에 들어있는 Chart라는 클래스의 전체이름 com.headfirstjava.projects.Chart

클래스를 패키지에 집어넣는 방법 패키지명 결정 클래스에 package 선언문 추가 디렉토리 구조를 패키지 구조에 맞게 설정 com.headfirstjava.PackageExercise 클래스에 package 선언문 추가 package com.headfirstjava; import javax.swing.*; public class PackageExercise { … } 디렉토리 구조를 패키지 구조에 맞게 설정

패키지와 디렉토리 구조 MyProject com.headfirstjava.PackageExercise classes source 패키지 구조 com com headfirstjava headfirstjava 101101 11010101 10101101 1010111 0100110 101101 11010101 10101101 1010111 0100110 PackageExercise.class PackageExercise.java

-d 컴파일 옵션 실행 방법 %cd MyProject/source %javac –d ../classes com/headfirstjava/PakcageExercise.java MyProject classes source %javac –d ../classes com/headfirstjava/*.java com com 실행 방법 %cd MyProject/classes %java com.headfirstjava.PakcageExercise headfirstjava headfirstjava 101101 11010101 10101101 1010111 0100110 101101 11010101 10101101 1010111 0100110

-d 컴파일 옵션 -d 옵션을 사용하면 사용자가 classes 디렉토리 쪽에 하위디렉토리를 따로 만들지 않아도 컴파일러가 자동으로 디렉토리를 만들어서 컴파일한 결과를 저장해줍니다. MyProject classes source com com %javac –d ../classes com/headfirstjava/*.java headfirstjava headfirstjava 101101 11010101 10101101 1010111 0100110 101101 11010101 10101101 1010111 0100110

실행 가능한 JAR(패키지 구조) 클래스 파일이 classes 디렉토리 밑에 제대로 된 패키지 구조로 저장되어있는지 확인 main() 메소드가 들어있는 클래스를 지정하기 위한 manifest.txt 파일 만들기 (이 파일은 classes 디렉토리에 집어넣음) Main-Class: com.headfirstjava.PackageExercise jar 도구를 실행시켜서 패키지 디렉토리와 manifest 파일이 들어있는 JAR 파일 만들기 %cd MyProject/classes %jar –cvmf manifest.txt packEx.jar com

manifest 파일은? % jar –tf packEx.jar META-INF com % cd Skyler MyProject % jar –tf packEx.jar % cd Skyler % jar –tf packEx.jar META-INF/ META-INF/MANIFEST.MF com/ com/headfirstjava/ com/headfirstjava/PackageExercise.class packEx.jar META-INF com 101101 11010101 10101101 1010111 0100110 headfirstjava % cd Skyler % jar –xf packEx.jar MANIFEST.MF 101101 11010101 10101101 1010111 0100110 PackageExercise.class

자바 웹 스타트 자바 웹 스타트 (Java Web Start; JWS) 처음에는 웹 브라우저를 통해서 실행되지만 그 후로는 거의 독립형 애플리케이션처럼 실행됨 서버에 있는 애플리케이션이 조금이라도 변경되면 자동으로 갱신된 코드를 내려받고 기존 코드에 통합시켜주는 기능이 있음 JWS나 자바 런타임 환경(JRE)을 설치하는 과정을 매우 쉽게 처리할 수 있음 무엇보다도 최종 사용자는 웹 페이지에서 링크만 클릭하면 프로그램을 실행시킬 수 있기 때문에 사용하기가 매우 쉽다는 장점이 있음

JWS 작동 원리 클라이언트에서 JWS 애플리케이션(.jnlp 파일)에 대한 웹 페이지 링크를 클릭 브라우저에서 JWS를 시작함. JWS 보조 애플리케이션에서 .jnlp 파일을 읽은 다음 서버에 MyApp.jar 파일을 요구 웹 서버에서 요청받은 .jar 파일을 제공 JWS에서 JAR를 받아서 지정된 main() 메소드를 호출하여 애플리케이션을 시작

.jnlp 파일 JNLP 자바 네트워크 구동 규약(Java Network Launch Protocol) JWS 애플리케이션에서 이 파일을 읽어서 JAR 파일을 찾아내고 그 애플리케이션을 시작하기 위한 용도로 사용함 XML 문서로, 여러 내용을 집어넣을 수 있습니다. <<편집기로 MyApp.jar 파일 열어서 코드 보면서 설명하기>>

JWS 애플리케이션 제작 및 배포 방법 실행가능한 JAR 만들기 .jnlp 파일 만들기 웹 서버에 새로운 mime 유형 추가 application/x-java-jnlp-file .jnlp 파일에 대한 링크가 들어있는 웹 페이지 만들기 <HTML> <BODY> <a href=“MyApp2.jnlp”>Launch My Application</a> </BODY> </HTML>

숙제 본문을 꼼꼼하게 읽어봅시다. 전에 만들었던 프로그램 중 하나를 –d 옵션을 써서 컴파일해봅시다. jar 도구의 사용방법에 대해 조금 더 자세히 알아봅시다. clear 버튼을 클릭하면 연주 중이라면 자동으로 연주를 중단하고 체크박스를 전부 체크되지 않은 상태로 되도록 만들어봅시다.