간단한 자바 애플리케이션

 

작업 디렉토리 구성

- C:\Java\workspace라는 폴더 생성 후 이후에 작업할 소스를 저장.

 

소스 코딩

 

// HelloWorld.java

class HelloWorld

{

public static void main(String[] args)

{

System.out.println("HelloWorld!");

}

}

 

컴파일

C:\Java\workspace\javac Helloworld.java

 

실행

C:\Java\workspace\java HelloWorld

 

문제점

- *.java소스 파일과 *.class 클래스 파일이 혼재

- 소스 파일과 바이트코드를 분리해 저장

C:\Java\에 classes라는 폴더 추가 생성

재컴파일

* C:\Java\workspace\에서

* javac-d ..\classes\HelloWorld.java

재실행

* Java -cp ..\classes\ HelloWorld

 

 

 

 

 

디렉토리 구조

 

 

 

기본 도구

 

 

JDK(SDK)다운 받기

 

 

 

JDK 설치 및 환경설정

 

설치

- 도스 프롬프트 만들기 (cmd)

- J2se1.8 설치

- Javac, java, javap, java.lang.Object실행

 

환경설정(1)

- path : 실행파일 (여러 용도의 툴)

* java.exe(실행), javac.exe(컴파일러)등

- classpath: API 사용(rt.jar에 포함된 여러 클래스)

- 내 컴퓨터 -> 속성 -> 고급 -> 환경변수 -> 시스템변수 -> 새로 만들기

- JAVA_HOME -> C:\JAVA\jdk1.8.0_25

- path -> %JAVA_HOME%bin; <- path가 없으면 생성, 있으면 맨 앞에 입력

- classpath -> .;

 

환경설정(2)

- 배치파일 만들기
      set JAVA_HOME=C:\JAVA\jdk1.8.0_25

* set PATH=%JAVA_HOME%bin

* set CLASSPATH=.;C:\JAVA\jdk1.8.0_25\lib\tools.jar;

- env.bat으로 저장하여 C:\에 위치시킴

- env후 java-version실행

 

 

 

 

Binding

 

- Static Binding

* 컴파일 시에 어떤 클래스의 어떤 메소드가 호출되는지 정한다.

 

- Dynamic Binding

* 실행 중에 어떤 클래스의 어떤 메소드가 호출되는지 정한다.

 

Linking

 

- Static Linking

* 라이브러리나 다른 메소드 호출 시 실행파일에 그 부분을 합침

* 실행파일크기가 커짐 / 호출성능 향상

 

 

Dynamic Linking

 

* 호출하는 부분에 메소드를 호출한다는 표시만 한다.

실행되는 부분은 다른 파일에 저장.

* 실행파일크기가 작아짐 / 실행 중 동적으로 찾아야 함으로 시간이 걸린다.

* 실행파일 내부에 호출할 부분의 주소가 아닌 호출한 부분의 정확한 이름을 기재해야 이후에 찾을 수 있다.(주소는 무의미)

 

자바는 완벽한 Dynamic Binding / Dynamic Linking 지원

 

 

 

 

자바의 컴파일 및 로드 방식

 

 

 

 

 

 

J2ME

:Java 2 Micro Edition

 

- J2ME 기술은 스마트 카드나 모바일과 같은 소형기기 시장을 지원하기 위한 자바플랫폼이다.

이 경우 속도나 기능 문제보다는 크키와 효율성이 중요한 요소가 된다. 즉 메모리, 파워등 소형기기들이 가지는 일반 적인 환경을 고려하여 제작하였다.

 

- J2ME의 주요특징

* 어디에서나 어느 시간, 어느 디바이스에서건 조화롭게 구축될 수 있다.

* 코드의 이식성이 뛰어나다.

* 동일한 자바 프로그래밍 언어가 효력있다.

* 안전한 네트워크 전달력이 있다.

* J2ME로 작성된 어플리케이션은 J2SE와 J2EE와 호환성 있게 작동한다.

 

- 주요 패키지

* CLDC / MIDP / CDC

* Foundation Profile / Java TV / Java Embedded Server Software

* Java Card / Personal Java / J2ME Wireless Toolkit 1.0

 

- WORA(Write Once, Run anywhere)이 깨짐

 

 

 

 

 

 

 

J2SE : Java 2 Standard Edition

 

- Java2 아키텍쳐에 기반한 기능 향상 판 자바 플랫폼

- Hotspot 가상 머신 탑재

- 강화된 API

- 서버와의 연동이 유연해 짐

- 서버사이드 대폭추가

- 주요패키지

: java.lang / java.io / java.net / java.applet / java.util

: java.security / java.beans / java.rmi / java.sql

: java. text / java.math /java.awt /

: JNDI / RMI / CORBA ORB / IDL Compiler / Java Sound


 

J2EE : Java2 Enterprise Edition

 

- 서버 측 프로그래밍을 원활이 할 수 있도록 각종 API를 지원하는 자바 플랫폼

- J2EE 플랫폼은 미들웨어 서버(WAS)에서 제공하는 각종 서비스에 대한 지원 라이브러리들과 EJB 스펙을 구현한 J2EE 표준 서버를 제공함

- 엔터프라이즈 환경에서 개발할 수 있는 완벽한 환경과 라이브러리를 제공하고 있다.

- 주요 패키지

: Enterprise Java Beans / Java Servlet / Java Server Page(JSP)

: Java Message Service(JMS) / J2EE Server

: J2EE Connector / Java Mail / Java Transaction API

: JNDI / JDBC / RMI over IIOP

- J2SE는 포함되어 있지 않음

 

 

플랫폼 독립

 

* 자바는 VM을 통해서 플랫폼 독립을 제공한다.

(자바의 가장 큰 장점)

 

 

 

자바 플랫폼의 종류

 

- J2SE(Java 2 Standard Edition)

- J2SE(Java 2 Enterprise Edition)

- J2ME(Java 2 Micro Edition)

- 1.2 이후 플랫폼 종류 유지

 

 

+ Recent posts