Java-taal om applicaties te schrijven met behulp van de grootste voordelen is dat "een compilatie overal, run", maar dit betekent niet dat alle Java-programma's zijn cross-platform heeft in feite een aanzienlijk deel van het Java-programma is niet in de andere besturingssystemencorrect, hoe kan schrijven een echt cross-platform Java-programma?Het volgende is de voorbereiding van de cross-platform Java-programma's zijn enkele van de dingen op te merken:
Voorbereiding van de cross-platform Java-toepassing, kunt u ervoor kiezen om JDK1.0, 1.1,1.2, of ter ondersteuning van hun GUI development tools, zoals: JBuilder, Visual Age voor Java, enz., maar moet aandacht besteden aan uw Java-programma kan alleen gebruik maken van de Java-core API-pakkettenAls u wilt derden bibliotheek pakket gebruiken, moet de bibliotheek pakket, ontwikkeld door de Java-kern-pakketten, of procedures voor het vrijgeven wanneer u de ondersteuning van de Java-class library pakketten JVM te publiceren.Met andere woorden, je programma moet 100% pure Java.Als een voorbeeld, Visual J + + is niet zuiver Java, Visual J + +-programma kan niet worden geschreven in platform-onafhankelijk.
Of u nu met behulp van een JDK of andere development tools, tijdens het compileren opties open moet staan alle waarschuwingen, zodat de compiler worden zoveel mogelijk de verklaring dat platform, en een waarschuwing geeft.Hoewel er geen compile-time waarschuwingen kan niet garanderen dat de fout moet cross-platform programma, maar de procedure is erg mis met waarschuwingen kunnen niet-platform-onafhankelijk.
In het programma bij het gebruik van een een methode, om te kijken in het document, zorg ervoor dat u gebruik maken van de methode is niet vermeld in het document is verouderd methoden zijn (Afgekeurd methode), noch is het impliciet in het document geeft niet aan de methode (ongedocumenteerde methode).
Probeer niet om de Java-programma's afrit methode om java.lang.System gebruik van de autosnelweg.Uitvalswegen naar de JVM te beëindigen, om het programma te beëindigen, maar als run andere Java-programma, neemt u de uitgang methode zal het programma is afgesloten, wat uiteraard niet wat we willen te laten zien.Om af te sluiten het Java-programma in feite, kunt u gebruik maken Vernietig () exit een stand-alone proces.Voor multi-threaded programma's, moeten we uitschakelen van alle niet-daemon draad.Alleen wanneer het programma enige manier om het programma met de exit exit verlaten.
Vermijd het gebruik van lokale methoden en lokale codes, voor zover mogelijk om eigen functies te schrijven met de bijbehorende Java-klasse, overschrijven deze methode.Als je moet gebruik maken van de inheemse methoden, kunt u ook een server programma roept de methode, en dan zal het programma de server programma nu schrijven als een client-programma, of rekening houden met de CORBA (Common Object Request Broker) programma structuur.
Java, Delphi op een gelijkaardige manier winexec, java.lang.runtime klasse exec methode als de methode zelf is onafhankelijk van het platform, maar de methode oproep aan de commando-en command parameters worden geassocieerd met het platformDaarom, om te voorkomen dat bij de voorbereiding van de programma's, als we willen andere programma's, maar moet de gebruiker de opdracht en de parameters te laten bellen.Bijvoorbeeld, kunt u bellen met notepad.exe in de ramen procedure moeten de vi oproep in linux in het programma.
Het programmeren van alle van de informatie in de code naar ASCII karakter set gebruiken, omdat niet alle besturingssystemen ondersteunen Unicode-tekenset, die voor cross-platform Java-programma's niet kan worden gezegd van de Chinese software is een grote slechte nieuws.
Niet hard gecodeerd in het programma worden alle constanten in verband met het platform, zoals de scheidingslijn, bestand afscheider, padscheider, enz., in deze constanten zijn verschillende op verschillende platforms, zoals de bestandsversie afscheider, is in de UNIX en MAC"/" in windows is "" Als u wilt deze constanten gebruiken, moet u jdava.util.Properties klasse getProperty methoden, zoals java.util.Properties.getProperty ("file.separator") kan bestand separator te krijgen,getProperty ("line.separator") geeft de scheidingslijn, getProperty ("path.separator") return path separator.
Bij de bereiding van cross-platform webapplicaties, gebruik dan niet java.net.InetAddress klasse gethostname verkregen hostnaam, zoals de hostnaam van een ander platform is anders, beter zijn om het zelfde formaat getAddress IP-adres, de andere, het programma te gebruikenAlle hostnaam moet worden vervangen door IP-adres, zoals www.javafan.net nodig is om het corresponderende IP-adres te vervangen.
Procedures met betrekking tot operaties bestand Opmerking: niet te hard gecodeerd in het programma-bestand pad, en 8, om dezelfde redenen, maar dit is bijzonder belangrijk, dus apart.Bovendien zijn de verschillende platforms voor de bestandsnaam karakters en de maximale lengte van een bestandsnaam eisen anders zijn, de tijd schrijf uw programma om een algemeen karakter te gebruiken als de ASCII-code naam van het bestand en kan niet worden een platform met dezelfde naam bestaat al in het programma, anders zal hetconflict.
Als je programma is een GUI programma geschreven in het gebruik van AWT componenten kunnen niet willekeurig worden de grootte en locatie van de component moet Java's layout manager (lay-out manager) te gebruiken om te zetten en de omvang en locatie van visuele componenten te beheren, ofde lay-out kan leiden tot verwarring.
Omdat verschillende besturingssystemen, verschillende machines, het systeem ondersteunt kleur en grootte van het scherm en resolutie verschillend zijn, hoe deze kenmerken te verkrijgen?Klasse kan het vereiste gebruik van java.awt.Systemcolor kleur, zoals klasse inactiveCaption evenement titel in het raamkozijn te krijgen is de achtergrondkleur, is het menu achtergrondkleur.De getScreenResolution kunt java.awt.Toolkit "pixels per inch", zoals eenheden van het scherm resolutie.GetScreenSize klasse kan je de grootte van het scherm (inch), loadSystemColors kan een lijst van alle het systeem kleuren.
Sommige van deze overwegingen van de referenties, sommige van zijn lange ervaring in het schrijven van Java-programma's, ik denk dat uw programma zal helpen bij het ontwerpen