"편집은 어디 에나 실행"되는 자바 언어는 가장 큰 장점을 사용하여 응용 프로그램을 작성하는 것입니다, 그러나 이것은 모든 Java 프로그램은 크로스 플랫폼 기능 것을 의미하지는 않습니다, 실제로 자바 프로그램의 상당한 부분은 다른 운영 체제에없는제대로 그럼 어떻게 진정한 크로스 플랫폼 자바 프로그램을 작성할 수 있나요?다음은 Java 프로그램 참고로 몇 가지 아르 크로스 플랫폼의 준비입니다 :
크로스 플랫폼 자바 응용 프로그램의 준비, 당신은, JDK1.0, 1.1,1.2을 선택하거나 같은 자신의 GUI 개발 도구를 지원합니다 : Jbuilder, 비주얼 나이 자바 등,하지만 자바 코어 API를 패키지를 사용하여 자바 프로그램에주의하셔야합니다당신은 타사 라이브러리 패키지를 사용하고자한다면, 라이브러리는 Java 핵심 패키지에 의해 개발 패키지를해야하거나 릴리스에 대한 절차는 JVM을 게시 자바 클래스 라이브러리 패키지의 지원이있을 때.즉, 프로그램이 순수한 자바 100 %되어야합니다.예를 들어, 비주얼 j는 + + 순수 자바 아니라 비주얼 일본 + + 프로그램이 플랫폼 독립로 작성하실 수 없습니다.
당신은 모든 경고를 열려 있어야 시간 옵션을 컴파일에서 JDK는 또는 다른 개발 도구를 사용하고 있는지, 그래서 컴파일러가로서 많은 진술 가능한 플랫폼 및 경고를 제공 될 수 있습니다.하지만, 경고 오류가 크로스 플랫폼 프로그램이 있어야한다고 보장할 수는 없음 컴파일 시간이 있지만 절차가 매우 경고가 아닌 플랫폼 독립되어있을 수도 잘못되었습니다.
문서 조사, 어느 한 방법을 사용하여 프로그램에서 해당 메서드는 오래된 방법 (사용 중지 방법)로 선언되어있는 문서에 사용되지 않는지 확인도 그것은 함축적인 문서은 그 방법을 (문서화되지 않은 방식) 나타내지 않습니다이다.
하지 마 java.lang.System을 사용하려면 자바 프로그램의 종료 메서드를 종료합니다.다른 자바 프로그램을 실행하면 출구 가지 방법이 있지만, 프로그램을 마치려면, JVM을 종료하기 위해 우리가보고 싶어하는 건지 분명하지 않습니다 폐쇄되었으며 프로그램을 사용하실 수 있습니다 출구 방법.실제로 자바 프로그램을 종료하기 위해서는 () 경보기를 박살낸게 아니란 사용할 수있는 독립 실행형 프로세스를 종료합니다.멀티 스레드 프로그램을 위해, 우리는 아닌 모든 데몬 스레드를 해제해야합니다.유일한 프로그램이 종료를 사용하여 프로그램을 종료하는 유일한 방법을 빠져 때.
하지 않도록, 해당 자바 클래스와 함께 자신의 함수를 작성까지 가능한이 메서드를 재정의, 지역 방법 및 지역 코드를 사용합니다.당신은 네이티브 메서드를 사용해야하는 경우, 당신은 서버 프로그램이 메서드를 호출하여 쓸 수 있습니다 다음 프로그램은 이제 클라이언트 프로그램과 서버 프로그램을 작성 것이다, 또는로 CORBA (공통 객체 요청 브로커) 프로그램 구조를 고려하십시오.
자체 플랫폼 독립적 방법,하지만 명령과 명령 매개 변수로 메서드 호출로 자바, 델파이 비슷한 방법 winexec에 java.lang.runtime 간부인 클래스 메서드는 플랫폼과 연관된우리는, 그들이 명령 및 해당 매개 변수를 설정할 수있는 사용자를해야 할때 다른 프로그램을 호출하려는 경우 따라서, 프로그램의 준비, 피할 수 있습니다.예를 들어, 당신은 프로그램에 리눅스에서 바이를 호출해야합니다 윈도우 프로 시저에서 Notepad.exe를 호출할 수 있습니다.
모든 운영 체제는 크로스 플랫폼을위한 자바 프로그램은 큰 나쁜 소식 중국어의 소프트웨어라고 할 수없는 유니 코드 문자 집합을 지원하기 때문에 코드의 정보를 모든 프로그래밍은 ASCII 문자 집합을 사용해야합니다.
라인 구분자, 파일 분리기, 경로 구분자 등 플랫폼과 관련된 모든 상수는 이러한 상수에,, 하드 프로그램에 코딩하지 마십시오, 파일 분리기 등 다양한 플랫폼에 따라 달라질 수있는 유닉스 및 Mac에"/"Windows에서 "입니다, 파일 분리기를 얻을 수 있습니다"(file.separator ")은 이러한 상수를 사용하려는 경우, 당신은 jdava.util.Properties에게 java.util.Properties.getProperty 같은 클래스 getProperty 메소드가 필요"getProperty (이하 "line.separator") 라인 구분자, getProperty ( "path.separator") 반환 경로 구분 문자를 반환합니다.
크로스 플랫폼 웹 응용 프로그램의 준비에서 getAddress가 같은 IP 주소 형식을, 다른 프로그램을 얻을 사용하는 것이 가장 좋습니다 다른 호스트 이름 형식의 서로 다른 플랫폼 때문에 호스트 이름을 얻은 java.net.InetAddress 클래스 getHostName를 사용하지 마십시오모든 호스트 이름이 같은 필요에 대응하는 IP 주소를 대체하는 www.javafan.net로, IP 주소로 대체되어야합니다.
수속 작업을 파일에 관한 참고 : 마 하드, 프로그램 파일 경로에 코딩하지 8, 같은 이유로,하지만 이건 너무 별도 특히 중요합니다.또한, 파일 이름 문자와 최대 파일 이름 길이 요구 사항에 사용되는 서로 다른 플랫폼 달라, 시간과 파일의 일반적인 이름으로 아스키 코드 문자를 사용하도록 프로그램을 작성에 동일한 이름이 이미 프로그램에 존재하는 플랫폼이 될 수 없다, 그렇지 않으면됩니다충돌.
프로그램이 임의로 크기와 설정 및 크기와 위치를 시각적인 구성 요소의 관리, 또는 자바의 레이아웃 관리자 (레이아웃 관리자)을 사용해야하는 구성 요소의 위치를 설정할 수 없습니다 AWT 구성 요소의 사용 작성된은 GUI 프로그램입니다면레이아웃이 혼란을 일으킬 수 있습니다.
여러 운영 체제, 다른 기계들 덕에,이 시스템은 컬러 및 화면 크기와 해상도는 어떻게 이러한 특성을 얻기 위해, 다른 지원?배경 색깔 클래스는 창 프레임에 클래스 inactiveCaption 이벤트의 제목과 같은 java.awt.Systemcolor 색상의 필수 사용을 얻을 수, 메뉴는 메뉴의 배경 색상입니다.getScreenResolution는 디스플레이의 화면 해상도의 단위로 java.awt.Toolkit "인치당 픽셀"을 사용할 수 있습니다.GetScreenSize 클래스는 화면 크기 (인치), loadSystemColors는 모든 시스템의 색상을 표시할 수 있습니다받을 수 있습니다.
참고 문헌에서 이러한 고려 사항 중 일부는, Java 프로그램을 서면으로 자신의 오랜 경험 중 일부는, 당신의 프로그램이 디자인을 도울 것이라고 믿고