크로스 플랫폼 자바 프로그램

자바 언어 로 프로그램 을 만 드 는 가장 큰 장점 은'한 번 의 컴 파일,곳곳에서 실행'입 니 다.그러나 이것 은 모든 자바 프로그램 이 플랫폼 을 뛰 어 넘 는 특성 을 가지 고 있다 는 것 이 아 닙 니 다.사실 상당 부분의 자바 프로그램 은 다른 운영 체제 에서 정확하게 실행 되 지 못 합 니 다.그러면 어떻게 해 야 진정한 크로스 플랫폼 의 자바 프로그램 을 만 들 수 있 습 니까?다음은 크로스 플랫폼 의 자바 프로그램 을 작성 할 때 주의해 야 할 것들 입 니 다.1.자바 크로스 플랫폼 프로그램 을 작성 할 때 JDK 1.0,1.1,1.2 또는 이들 을 지원 하 는 GUI 개발 도 구 를 선택 할 수 있 습 니 다.예 를 들 어 Jbuilder,Visual Age for Java 등 입 니 다.그러나 자바 프로그램 은 자바 핵심 API 패키지 만 사용 할 수 있 습 니 다.제3자 라 이브 러 리 패 키 지 를 사용 하려 면 주의해 야 합 니 다.이 라 이브 러 리 패키지 도 자바 핵심 패키지 개발 로 이 루어 져 야 합 니 다.그렇지 않 으 면 프로그램 을 발표 할 때 자바 라 이브 러 리 패 키 지 를 지원 하 는 JVM 을 발표 해 야 합 니 다.즉,당신 의 프로그램 은 100%순수 자바 가 필요 하 다 는 것 이다.예 를 들 어 Visual J++는 순수 자바 가 아니 라 Visual J++로 작 성 된 프로그램 도 플랫폼 과 무관 하지 않 습 니 다.2.JDK 나 다른 개발 도 구 를 사용 하 든 컴 파일 할 때 모든 경고 옵션 을 열 어야 컴 파일 러 는 플랫폼 과 관련 된 문 구 를 최대한 많이 발견 하고 경 고 를 할 수 있 습 니 다.컴 파일 되 지 않 았 을 때 오 류 를 경고 하 는 프로그램 이 반드시 크로스 플랫폼 이 라 고 보장 할 수 는 없 지만 경고 오류 가 있 는 프로그램 은 비 플랫폼 과 무관 할 가능성 이 높다.3.프로그램 에서 어떤 방법 을 사용 할 때 문 서 를 자세히 살 펴 보고 문서 에 이미 시대 에 뒤떨어 진 방법(Deprecated method)이 아니 라 문서 에 표시 되 지 않 은 은밀 한 방법(Undocumented method)을 사용 하 는 지 확인 해 야 합 니 다.4.자바 프로그램 을 종료 할 때 자바.lang.System 의 exit 방법 을 사용 하지 마 십시오.Exit 방법 은 JVM 을 종료 하고 프로그램 을 종료 할 수 있 습 니 다.그러나 다른 자바 프로그램 을 동시에 실행 하면 exit 방법 을 사용 하면 프로그램 도 종료 합 니 다.이것 은 우리 가 원 하 는 상황 이 아 닙 니 다.사실상 자바 프로그램 을 종료 하려 면 destory()를 사용 하여 독립 적 으로 실행 되 는 과정 을 종료 할 수 있 습 니 다.다 중 스 레 드 프로그램 에 대해 서 는 각 비 수호 스 레 드 를 닫 아야 합 니 다.프로그램 이 비정상적 으로 종료 되 었 을 때 만 exit 방법 으로 프로그램 을 종료 합 니 다.5.로 컬 방법 과 로 컬 코드 를 사용 하지 말고 가능 한 한 해당 기능 을 가 진 자바 류 를 작성 하여 이 방법 을 고 칩 니 다.이 로 컬 방법 을 사용 해 야 한다 면 서버 프로그램 을 만들어 서 이 방법 을 호출 한 다음 현재 작성 할 프로그램 을 서버 프로그램의 클 라 이언 트 프로그램 으로 사용 하거나 CORBA(공공 대상 요청 에이전트)프로그램 구 조 를 고려 할 수 있 습 니 다.6.자바 에는 Delphi 의 winexec 와 유사 한 방법 이 있 습 니 다.자바.lang.runtime 류 의 exec 방법 은 이 방법 자체 가 플랫폼 과 무관 하지만 방법 에 호출 된 명령 과 명령 매개 변 수 는 플랫폼 과 관련 이 있 기 때문에 프로그램 을 작성 할 때 사용 을 피해 야 합 니 다.다른 프로그램 을 호출 하려 면...사용자 스스로 이 명령 과 인 자 를 설정 해 야 합 니 다.예 를 들 어 windows 에서 notepad.exe 프로그램 을 호출 할 수 있 고 Liux 에서 vi 프로그램 을 호출 해 야 한다.7.프로 그래 밍 의 모든 정 보 는 ASCII 코드 문자 집합 을 사용 해 야 합 니 다.모든 운영 체제 가 유 니 코드 문자 집합 을 지원 하 는 것 이 아니 기 때문에 크로스 플랫폼 의 자바 중국어 소프트웨어 프로그램 에 큰 비보 가 아 닐 수 없습니다.8.프로그램 에서 플랫폼 과 관련 된 모든 상수,예 를 들 어 줄 구분자,파일 구분자,경로 구분자 등 을 딱딱 하 게 인 코딩 하지 마 십시오.이러한 상수 들 은 서로 다른 플랫폼 에서 다 릅 니 다.예 를 들 어 파일 구분자,UNIX 와 MAC 에 서 는'/'이 고 windows 에 서 는''입 니 다.이런 상수 들 을 사용 하려 면 jdava.util.Properties 류 의 getProperty 방법 을 사용 해 야 합 니 다.예 를 들 어 java.util.Properties.getProperty("file.separator")는 파일 구분자,getProperty("line.separator")는 줄 구분자,getProperty("path.separator")는 경로 구분자 로 되 돌아 갈 수 있 습 니 다.9.크로스 플랫폼 의 네트워크 프로그램 을 작성 할 때 자바.net.InetAddress 류 의 getHostName 방법 으로 호스트 이름 을 얻 지 마 십시오.서로 다른 플랫폼 의 호스트 이름 형식 이 다 르 기 때문에 getAddress 를 사용 하여 같은 형식의 IP 주 소 를 얻 는 것 이 좋 습 니 다.또한 프로그램의 모든 메 인 이름 은 IP 주소 로 바 꿔 야 합 니 다.예 를 들 어 www.263.net 은 해당 하 는 IP 주소 로 바 꿔 야 합 니 다.10.파일 작업 과 관련 된 프로그램 은 주의해 야 합 니 다.프로그램 에서 파일 경 로 를 딱딱 하 게 인 코딩 하지 마 십시오.이 유 는 8 과 같 습 니 다.다만 이 점 이 특히 중요 하기 때문에 단독으로 제기 합 니 다.그리고 플랫폼 마다 파일 이름 에 사용 되 는 문자 와 최대 파일 이름 의 길이 에 대한 요구 가 다 릅 니 다.프로그램 을 작성 할 때 일반적인 ASCII 코드 문 자 를 파일 이름 으로 사용 해 야 합 니 다.또한 플랫폼 에 존재 하 는 프로그램 과 같은 이름 으로 사용 할 수 없습니다.그렇지 않 으 면 충돌 할 수 있 습 니 다.11.프로그램 이 GUI 프로그램 이 라면 AWT 구성 요 소 를 사용 할 때 구성 요소 의 크기 와 위 치 를 딱딱 하 게 설정 하지 않 고 자바 의 레이아웃 관리자(layot manager)를 사용 하여 시각 적 구성 요소 의 크기 와 위 치 를 설정 하고 관리 해 야 합 니 다.그렇지 않 으 면 레이아웃 이 혼 란 스 러 울 수 있 습 니 다.12.서로 다른 운영 체제,서로 다른 기계,시스템 이 지원 하 는 색상 과 화면의 크기 와 해상도 가 다 르 기 때문에 어떻게 이런 속성 을 얻 을 수 있 습 니까?자바.awt.systemcolor 류 를 사용 하면 필요 한 색 을 얻 을 수 있 습 니 다.예 를 들 어 이 종류의 inactiveCaption 은 창 테두리 에서 활동 제목 의 배경 색 이 고 menu 는 메뉴 의 배경 색 입 니 다.java.awt.Toolkit 의 getScreenResolution 을 사용 하면'픽 셀 당 인치'단위 로 화면의 해상 도 를 표시 할 수 있 습 니 다.이 종류의 getScreenSize 는 화면 크기(인치)를 얻 을 수 있 으 며,loadSystem Colors 는 모든 시스템 색상 을 표시 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기