Senior JAVA programování: cross-platformní programy psané poznámky



Jazyka Java psát aplikace používající největších výhod je, že ", kompilaci spustit všude", ale to neznamená, že všechny Java programy jsou cross-platformní rysy, ve skutečnosti značná část programu v jazyce Java není v jiných operačních systémechsprávně, tak jak je možné napsat skutečně cross-platformní Java program?Následuje příprava cross-platformní Java programy jsou některé z věcí, na vědomí:

Příprava cross-platformní aplikace Java, můžete si vybrat na JDK1.0, 1.1,1.2, nebo podporují jejich rozvoj GUI nástrojů, jako jsou: JBuilder, Visual věk pro Javu, atd., ale musí dávat pozor, aby váš program v jazyce Java lze použít pouze jádro Java API balíčkyPokud chcete používat třetí-party knihovny balíček, knihovny balíček také vyvinula základní balíčky Java, nebo postupy pro uvolnění, když máte podporu ve třídě balíčků Java knihovny JVM publikovat.Jinými slovy, váš program musí být 100% čisté Java.Jako příklad, Visual J + + není čistá Java, Visual J + + program nemůže být napsán v platformě-nezávislý.

Ať už používáte JDK nebo jiné vývojové nástroje, v době kompilace možnosti by měly být otevřené všem varováním, takže kompilátor být co nejvíce prohlášení, že platforma, a dává varování.Ačkoli není tam žádná kompilace-čas varování nemůže zaručit, že chyba musí být cross-platformní program, ale postup je velmi špatně s varováním může být non-platforma-nezávislý.

V programu při použití jedné metody, nahlédnout do dokumentu, ujistěte se, že použití metody není uvedeno v dokumentu je zastaralé metody byly (Zastaralý způsob), ani je implicitní v dokumentu neuvádí metodou (bez dokladů metoda).

Snažte se ukončit program Java odchodu metodu použít java.lang.System.Konec cesty k ukončení JVM, ukončete program, ale když běží jiný program v jazyce Java, použijte výjezd metoda umožní program byl uzavřen, což samozřejmě není to, co chceme vidět.Chcete-li ukončit program v jazyce Java ve skutečnosti, můžete použít destory () exit stand-alone "proces.Pro multi-threaded programy, musíme vypnout všechny non-daemon závit.Pouze tehdy, když program skončil jediný způsob, jak ukončit program pomocí exit.

Vyhněte se použití lokálních metod a místní předpisy, pokud je to možné napsat si vlastní funkce odpovídající třídy Java, potlačení této metody.Pokud je nutné použít nativní metody, můžete napsat server program volá metodu, a pak se program bude nyní psát program serveru jako klientský program, nebo zvážit CORBA (Common Object Request Broker) struktura programu.

Java, Delphi podobným způsobem WinExec, java.lang.runtime třída exec metoda jako metoda, sám je nezávislý na platformě, ale volání metody na příkaz a parametry příkazu jsou spojeny s platformouProto se při přípravě programů, aby se zabránilo, pokud chceme volat jiné programy, musejí nechat uživateli nastavit příkaz a jeho parametry.Například, můžete volat notepad.exe v oknech postup by měl zavolat vi v Linuxu v programu.

Programování všechny informace v kódu muset používat ASCII znakovou sadu, protože ne všechny operační systémy podporují znakovou sadu Unicode, která pro cross-platformní mohou Java programy nelze říci o čínských software je velká špatné zprávy.

Nejsou pevně zakódovány v programu, všechny konstanty související s platformou, jako oddělovač linky, soubor oddělovač, oddělovač cesty, atd., tyto konstanty se liší na různých platformách, jako jsou souborové oddělovač, je v systému UNIX a MAC"/" v systému Windows je "", pokud chcete používat tyto konstanty, musíte jdava.util.Properties třídy getProperty metod, jako je java.util.Properties.getProperty ("file.separator") může dostat soubor oddělovač,getProperty ("line.separator") vrátí oddělovač linky, getProperty ("path.separator") vrátí oddělovač cesty.

Při přípravě žádostí cross-platformní web, nepoužívejte java.net.InetAddress třídy gethostname získat název hostitele, protože různých platforem různých formátů název hostitele je nejlepší použít getAddress dostat stejné IP adresy ve formátu, ostatní, programVšechny název hostitele by měla být nahrazena IP adresou, jako www.javafan.net nutné nahradit odpovídající IP adresu.

Postupy týkající se operace se soubory Poznámka: Nepoužívejte pevně zakódovány v cestě programu soubor, a 8, ze stejných důvodů, ale toto je zvlášť důležité, tak samostatně.Kromě toho, že různé platformy používané pro znaky názvu souboru a maximální souboru požadavků délka jména jsou různé, čas na napsání svého programu používat ASCII kód znaky jako obecný název souboru a nemohou být platforma se stejným názvem již existuje v programu, jinak budekonfliktu.

Pokud je váš program je program napsaný v GUI použití komponent AWT nelze libovolně nastavit velikost a umístění složky by měly používat Java layout manager (layout manager), nastavit a spravovat velikost a umístění vizuálních komponent, nebouspořádání může způsobit zmatek.

Protože různé operační systémy, různé stroje, systém podporuje barvu a velikost obrazovky a rozlišení se liší, jak získat tyto atributy?Třída může dostat vyžaduje použití java.awt.Systemcolor barvy, jako jsou okenní rámy, které třída inactiveCaption je barva pozadí v případě, titulu, menu je menu barvu pozadí.GetScreenResolution lze použít java.awt.Toolkit "pixelů na palec", jako jednotky rozlišení displeje.GetScreenSize třídy může dostat obrazovky (palce), může loadSystemColors seznam všech systémových barev.

Některé z těchto úvah z odkazů, některé z jeho dlouhé zkušenosti s psaním programů v jazyce Java, věřím, váš program pomůže design