Старший Java-программирование: кросс-платформенных программ, написанных к сведению



Java языком для написания приложений с использованием самых больших преимуществ является то, что "компиляции, выполняется везде", но это не означает, что все Java программы кросс-платформенных возможностей, на самом деле, значительная часть программы Java не в других операционных системахправильно, то как можете написать по-настоящему кросс-платформенные Java программы?Ниже подготовки кросс-платформенный Java программ некоторые из вещей, чтобы отметить:

Подготовка кросс-платформенное приложение Java, вы можете выбрать JDK1.0, 1.1,1.2, или поддержать их графические инструменты развития, таких как: JBuilder, Visual Age для Java, и т.д., но следует обратить внимание на ваши Java программа может использовать только основные пакеты Java APIЕсли вы хотите использовать сторонние библиотеки пакет, пакет библиотеки также разработаны пакеты Java ядро, или процедуры для освобождения, когда у вас есть поддержка Java-класса библиотеки пакеты JVM опубликовать.Другими словами, ваша программа должна быть на 100% чистой Java.В качестве примера, Visual J + + не является чистой Java, Visual J + + программа не может быть записана в независимой от платформы.

Используете ли вы JDK или других инструментов развития, во время компиляции варианты должны быть открыты все предупреждения, поэтому компилятор может быть столько, сколько возможно утверждение, что платформа, и выдает предупреждение.Хотя не существует во время компиляции предупреждений не может гарантировать, что ошибка должна быть кросс-платформенной программы, но процедура очень плохого предупреждения могут быть не независимой от платформы.

В программе при использовании любой метод, чтобы заглянуть в документ, убедитесь, что вы используете метод не указано в документе, является устаревшей методы (Устаревший метод), равно как и подразумевается в документе не указывается метод (Недокументированные метод).

Старайтесь не выход выход метод программы Java, чтобы использовать java.lang.System.Выход способов прекратить JVM, чтобы завершить работу программы, но если запустить другую программу Java, использовать выход метод позволит программа была закрыта, что, очевидно, не то, что мы хотим видеть.Для выхода из программы Java в самом деле, вы можете использовать destory () выход самостоятельного процесса.Для многопоточных программ, мы должны отключить все не-демон потока.Только тогда, когда программа выхода единственный путь для выхода из программы с помощью выхода.

Избегайте использования местных методов и местные правила, насколько это возможно, чтобы написать свои собственные функции с соответствующим классом Java, переопределить этот метод.Если вы должны использовать собственные методы, вы можете написать сервер программа вызывает метод, а затем программа теперь будет писать программу сервера в качестве клиентской программы, или рассмотреть CORBA (Common Object Request Broker) структура программы.

Java, Delphi в аналогичных WinExec путь, java.lang.Runtime класса Exec метода, как и сама не зависит от платформы, но метод вызова команды и параметров команды, связанные с платформойТаким образом, в подготовке программ, чтобы избежать, если мы хотим, чтобы вызывать другие программы, они должны позволить пользователю установить команды и ее параметры.Например, вы можете позвонить notepad.exe в процедуре окна должны называть VI в Linux в программе.

Программирование всю информацию в коде должны использовать набор символов ASCII, потому что не все операционные системы поддерживают Unicode набор символов, который для кросс-платформенный Java программы не могут сказать о китайских ПО, большая плохая новость.

Не жестко в программе, любые константы, связанные с платформы, такие как разделитель строк, разделитель файлов, разделитель пути и т. д., в этих констант различаются на разных платформах, таких как разделитель файлов, в UNIX и MAC"/" в окнах ", если вы хотите использовать эти константы, необходимо jdava.util.Properties методы класса деЬРгорегЬу, таких как java.util.Properties.getProperty (" file.separator ") можно получить файл сепаратор,деЬРгорегЬу ("line.separator") возвращает разделителя строк, деЬРгорегЬу ("path.separator") сепаратор обратный путь.

В подготовке заявок кросс-платформенной сети, не используйте java.net.InetAddress getHostName класс получил имя хоста, а имя хоста другой формат платформа отличается, лучше использовать тот же формат getAddress IP-адрес, с другой стороны, программыВсе имя узла должны заменить IP-адреса, такие как www.javafan.net необходимо заменить соответствующие IP-адреса.

Процедуры, связанные с файловых операций Примечание: Не жестко в пути к файлу программы, и 8, по тем же причинам, но это особенно важно, так отдельно.Кроме того, различные платформы используется для названия файла символы и максимальным требованиям имя файла длиной разные, время, чтобы написать программу на использование символов ASCII код, как общее название файла и не может быть платформой же именем уже существует в программу, в противном случае он будетконфликта.

Если ваша программа является программой графического интерфейса написана на использование компонентов AWT не может быть произвольно установить размер и местоположение компонента должны использовать менеджер компоновки Java (менеджер компоновки), чтобы настроить и управлять размер и расположение визуальных компонентов, илимакет может привести к путанице.

Поскольку различные операционные системы, различные машины, система поддерживает цвет и размер экрана и разрешение различных, как получить эти атрибуты?Класс может получить обязательное использование java.awt.Systemcolor цвета, такие как класс оконной рамы inactiveCaption в случае название цвета фона, меню цвета фона меню.GetScreenResolution можете использовать java.awt.Toolkit "пикселей на дюйм" в качестве единиц разрешение экрана.GetScreenSize класс может получить размер экрана (в дюймах), loadSystemColors можете получить список всех цветов системы.

Некоторые из этих соображений, из ссылки, некоторые из его опыта в письменном виде Java-программ, я полагаю, ваша программа поможет дизайн