Senior Java: cross-platform programów notatkę



języku Java do tworzenia aplikacji za pomocą największych zalet jest to, że "kompilacja, uruchom wszędzie", ale to nie oznacza, że wszystkie programy Java są cross-platform funkcji, w rzeczywistości, znaczna część programu Java nie jest w innych systemach operacyjnychprawidłowo, to jak można napisać naprawdę wieloplatformowy program Java?Poniżej znajduje się przygotowanie wieloplatformowych programów w języku Java to tylko niektóre z rzeczy do odnotowania:

Przygotowanie wieloplatformowych aplikacji Java, można wybrać JDK1.0, 1.1,1.2, i wspierać ich rozwój narzędzi graficznych takich jak: JBuilder, Visual Age for Java, itd., ale trzeba zwracać uwagę na program w Javie może korzystać tylko z pakietów Java API coreJeśli chcesz użyć innej pakiecie biblioteki, biblioteka powinna pakiet opracowany przez pakiety Java rdzenia, lub procedur dopuszczania, gdy masz wsparcie pakietu Java biblioteki klas JVM opublikować.Innymi słowy, program musi być w 100% czysty Java.Jako przykład Visual J + + nie jest czysta Java, Visual J + + program nie może być napisana w niezależny od platformy.

Czy używasz JDK lub innych narzędzi programistycznych, podczas kompilacji opcji czasu powinny być otwarte wszystkie ostrzeżenia, więc kompilator można znaleźć w tyle oświadczeń związanych z platformy i daje ostrzeżenie.Chociaż nie ma kompilacji ostrzeżenia nie może zagwarantować, że błąd musi być program cross-platform, ale procedura jest bardzo źle z ostrzeżeniami może nie być niezależne od platformy.

W programie przy użyciu jednej metody do przeanalizowania dokumentu, upewnij się, że stosowanie metody nie jest podana w dokumencie jest przestarzałe metody zostały (przestarzałe metody), ani nie jest ukryte w dokumencie nie wskazano metody (Nieudokumentowane metody).

Staraj się nie wyjść z programu Java metody wyjścia do korzystania java.lang.System.sposoby Exit, aby zakończyć JVM, do zakończenia programu, ale jeśli uruchomienia innego programu Java, metody exit pozwoli program został zamknięty, co oczywiście nie jest to, co chcemy zobaczyć.Aby wyjść z programu Java w rzeczywistości, można użyć destory () wyjazd samodzielny proces.W przypadku programów wielowątkowych, musimy wyłączyć wszystkie wątku non-daemon.Tylko wtedy, gdy program odszedł jedyny sposób, aby wyjść z programu za pomocą wyjścia.

Należy unikać stosowania metod lokalnych i lokalnych przepisów, w miarę możliwości do pisania własnych funkcji z odpowiedniej klasy Java, nadpisać tą metodę.Jeśli musisz używać natywnych metod, można napisać program, serwer wywołuje metodę, a następnie program będzie teraz napisać program serwera programu klienta lub rozważyć CORBA (Common Object Request Broker) strukturę programu.

Java, Delphi w podobny winexec sposób java.lang.runtime klasy exec sposób jak sama metoda jest niezależna od platformy, ale metody do polecenia i parametry polecenia są związane z platformąDlatego też, przygotowanie programów, aby unikać, jeśli chcemy, aby zadzwonić do innych programów, muszą one pozwolić użytkownikowi na ustawienie polecenia i jego parametrów.Na przykład, możesz zadzwonić notepad.exe w procedurze okna powinna wywołać vi w Linuksie w programie.

Programowanie wszystkich informacji w kodzie trzeba używać zestawu znaków ASCII, ponieważ nie wszystkie systemy operacyjne obsługa zestawu znaków Unicode, który dla wieloplatformowych programów w języku Java nie można powiedzieć o chińskich oprogramowania jest wielkim złe wieści.

Nie zapisane w programie, żadnych stałych związanych z platform, takich jak separator wierszy, separator pliku, separatora ścieżki, itp., te stałe są różne na różnych platformach, takich jak separator pliku, znajduje się w UNIX i MAC"/" w Windows jest "", jeśli chcesz używać tych stałych, trzeba jdava.util.Properties klasy metod getProperty, takich jak java.util.Properties.getProperty ("file.separator") może się separator plikugetProperty ("line.separator") zwraca separator wierszy, getProperty ("path.separator") separator drogi powrotnej.

W przygotowaniu wieloplatformowych aplikacji WWW, nie używaj java.net.InetAddress gethostname klasa uzyskać nazwę hosta, z powodu różnych platformach innym formacie nazwa hosta jest najlepiej wykorzystać getAddress uzyskać ten sam format adresu IP, z drugiej strony, programWszystkie nazwy hosta należy zastąpić adresem IP, takie jak www.javafan.net należy zastąpić odpowiedni adres IP.

Procedury związane z operacjami na plikach Uwaga: Nie zapisane na ścieżkę do pliku programu, i 8, z tych samych powodów, ale jest to szczególnie ważne, więc oddzielnie.Ponadto różne platformy używane dla znaków nazwy pliku i maksymalnym wymaganiom nazwę pliku długości są różne, czas by napisać program do korzystania znaków ASCII kod jako ogólna nazwa pliku i nie może być platformą samej nazwie już istnieje w programie, w przeciwnym razie będziekonfliktu.

Jeśli jest to program GUI napisany w użytkowanie elementów AWT nie można dowolnie ustawić rozmiar i położenie komponentu należy użyć menedżera Java układ (layout manager) do tworzenia i zarządzania rozmiar i położenie komponentów wizualnych, lubukład może powodować zamieszanie.

Ponieważ różne systemy operacyjne, różne maszyny, system obsługuje koloru i rozmiaru ekranu i rozdzielczości są różne, jak uzyskać te atrybuty?Klasa może uzyskać wymagane użycie koloru java.awt.Systemcolor, takie jak klasa obramowania okien inactiveCaption w tytule imprezy jest kolor tła, menu jest kolor tła menu.GetScreenResolution mogą korzystać java.awt.Toolkit "pikseli na cal", jako jednostek rozdzielczości ekranu.klasy GetScreenSize może uzyskać rozmiaru ekranu (cale), loadSystemColors może lista wszystkich kolorów systemu.

Niektóre z tych rozważań z odnośników, niektóre z jego wieloletnie doświadczenie w pisaniu programów Java, uważam, że program pomoże design