Как скомпилировать Java код на Mac OS
Как скомпилировать Java код на Mac OS один из самых популярных вопросов. После этой статьи у Вас не останется никаких вопросов. Обещаю Вам, это элементарно.
Данный урок и последующие направлен для людей, которые хотят изучать Java (не путайте с JavaScript) на Mac OS, это совершенно разные языки программирования. Идею создать данную статью я почерпнул из учебников по изучению Java, где работа с консолью представлена так, что Вы чуть ли не гуру должны быть в этом направлении – и авторы искренне удивляются, почему Вы это не понимаете. Особенно это актуально для людей, которые только что начинают изучать Java или для тех, кто переходит с веб языков, например, PHP на данный язык и хочет постичь его основы и сразу же с первых минут попадает в полный просак.
Люди выполняют те задания, которые выдаются в учебниках, но консоль упрямо не понимает, что от нее хотят. Итак. Давайте разберемся по-порядку, в этой статье мы создадим самую элементарную, самую первую нашу программу “Hello World”, которая будет собственно, выводить данные слова в нашу консоль. Мы создадим файл, скопмилируем его и запустим, чтобы посмотреть, как работает наша новоиспеченная программа.
Первый шаг
Первое, что нужно сразу понять, это то, что Java уже установлена на Ваш комп (Apple). И Mac OS уже все понимает и знает, что к чему. Следовательно ограничимся только важными знаниями. И первое, что мы должны сделать, это создать любую папку на рабочем столе. И в этой папке создать любой файл с разрешением .java, в любом текстовом редакторе, я советую использовать Sublime Text 2 – скачайте в нете абсолютно бесплатно. В этой статье мы не будем вникать в код, просто тупо скопируйте это и вставьте в свой файл.
Загрузка Java для компьютера Mac
Загружайте Java для ОС OS X непосредственно с веб-сайта компании Oracle.
Загрузка последней версии
Если для работы с программой или веб-страницей требуется установить программное обеспечение Java, можно загрузить текущую версию Java для ОС OS X непосредственно с веб-сайта компании Oracle.
Примечание. Можно также загрузить устаревшую версию Java SE 6 компании Apple, если вы используете программу, для работы которой требуется неподдерживаемая устаревшая версия.
Информация о продуктах, произведенных не компанией Apple, или о независимых веб-сайтах, неподконтрольных и не тестируемых компанией Apple, не носит рекомендательного или одобрительного характера. Компания Apple не несет никакой ответственности за выбор, функциональность и использование веб-сайтов или продукции сторонних производителей. Компания Apple также не несет ответственности за точность или достоверность данных, размещенных на веб-сайтах сторонних производителей. Обратитесь к поставщику за дополнительной информацией.
Затачиваем свое Java-приложение под Mac OS X. Часть 1
Задумывались ли вы когда-нибудь, что существует рынок потенциальных пользователей вашего Java-приложения, о котором вы, скорее всего, даже не подозреваете? У каждого из этих пользователей есть предварительно установленная по умолчанию Java 2 Standard Edition (J2SE) версии 1.3.1. При этом они могут ничего не знать об этом. И при помощи нескольких нехитрых приемов вы можете придать своему Java-приложению вид настоящего приложения Max OS X, которое пользователи смогут установить и использовать даже не подозревая о том, что на самом деле это приложение является платформонезависимым Java-приложением. Согласитесь, звучит заманчиво!
Mac OS X построена по всем канонам операционных систем BSD UNIX и поставляется вместе с J2SE и Java Web Start. Разработчики могут открыть окно терминала и обнаружить, что множество их любимых утилит и инструментов уже установлены. Как, например, vi, emacs и Java. Буквально одним щелчком мыши вы можете запустить веб-сервер Apache. Mac – это великолепная платформа для Java-разработчиков, с большим количеством коммерческих, бесплатных и open-source инструментов разработки приложений. Не важно пишите ли вы приложения под Mac или нет, потратьте немного времени, чтобы внести совсем немного небольших изменений в ваше приложение так, чтобы предоставить хорошие условия работы с вашим приложением миллионам потенциальных пользователей/заказчиков, которые уже работают под Mac OS X. Конечных пользователей не интересует, на каком языке программирования написано ваше приложение, их больше волнует его привлекательность, удобство и простота использования.
В этой серии статей мы рассмотрим некоторые приемы, воспользовавшись которыми, вы сможете сделать свое Java-приложение максимально приближенным по внешнему виду и функциональности к обычному Mac-приложению. Для того чтобы это провернуть нам понадобится три подхода, каждый из которых будет освящен в отдельной статье, при этом ваше приложение не будет выглядеть как-то неестественно на других платформах, не на Mac. В этой статье мы обратим внимание на различные runtime-свойства, которые позволят вам менять расположение главного меню, настраивать и изменять меню приложения, а также улучшить внешний вид компонентов фрейма на форме приложения. В следующий раз будут рассмотрены некоторые изменения в исходном коде программы, которые позволят управлять реакцией на различные комбинации клавиш, настраивать внешний вид меню, увеличить производительность вашего приложения. В третьей статье мы остановимся на методах упаковки приложения, а также его подготовки к установке и работе на Mac-платформе так, чтобы пользователям не приходилось думать о каких-то там jar-файлах, shell-скриптах, или об окне терминала.
В июле 2002 года на MacWorld Expo, генеральный директор Apple, Стив Джобс, в своем отчете сообщил слушателям, что на тот момент существовало приблизительно 2.5 миллиона пользователей Mac OS X, и, что в конце 2002 года, их будет насчитываться около 5 миллионов. Как Java-разработчик, вы понимаете, что это очень малый процент пользователей на рынке персональных компьютеров. Но вы также должны осознавать, что каждая новая версия Mac OS X будет готова выполнять ваши Java-приложения, поскольку в поставку включены как JRE, так и JDK для Java 2 Standart Edition. Поэтому для Java-разработчиков, Mac-платформа является вдвое перспективней, чем для любого другого разработчику.
Итак, давайте перейдем непосредственно к первому этапу. В качестве примера приложения возьмем open-source приложение JUnit. Во-первых, потому, что оно написано не для Mac-платформы, это очевидно, и содержит множество элементов управления, внешний вид и расположение которых нам нужно изменить так, чтобы максимально приблизить их к тому, как это должно быть в обычном Mac-приложении.
Для начала сходите на домашнюю страницу JUnit (http://www.junit.org/) и скачайте последнюю доступную версию этой программы. После этого распакуйте .zip архив. Теперь откройте окно терминала вашей Windows-машины и перейдите в директорию с программой, например в junit3.8. Чтобы запустить JUnit выполните следующее:
Будет запущена Swing-версия приложения, класс TestRunner, и после этого запустятся тесты класса junit.samples.AllTests. Вы должны будете увидеть что-то похожее на это:
Рис. 1. JUnit на Windows-платформе
Вы, должно быть, удивитесь, но подобным же образом можно выполнить это приложение и на Mac. Теперь, работая под UNIX (Mac OS X) вы можете открыть окно терминала и запустить JUnit точно так же, как вы это сделали под Windows. Для того чтобы запустить окно терминала выполните пункт меню “Terminal application” в Applications/Utilities. После того, как вы скачаете zip-архив с JUnit, воспользуйтесь утилитой jar, чтобы распаковать его. Хотя в Mac есть свой собственный универсальный распаковщик Stuffit, но в ранних версиях эта программа имела несколько ошибок при распаковкее файлов с длинными именами, поэтому некоторые файлы из архива с JUnit могут быть переименованы, что нежелательно. Но вы можете избежать этих проблем, если воспользуетесь утилитами jar или gunzip, вместо Stuffit.
Есть несколько различий между запуском JUnit на Mac OS X. Во-первых, вам не нужно беспокоиться по поводу, установлена или нет виртуальная Java-машина (JRE), поскольку она является частью операционной системы. Во-вторых, вам нужно учитывать то, что необходимо заменить в командной строке символы “\” (backslash) на “/” (slash). Поскольку “/” является стандартным разделителем в UNIX-подобных системах. И теперь в окне терминала выполняем следующее:
Без всяких изменений, внешний вид этого приложения под Mac OS X будет выглядеть следующим образом:
Рис. 2. Внешний вид JUnit под Mac OS X
Даже не предпринимая никаких дополнительных действий, например, не устанавливая какой-либо look&feel для своего приложения, мы получаем Aqua, который используется по умолчанию в Mac OS X. Многие элементы управления: полосы прокрутки, кнопки, закладки – многое уже делает наше приложение, как будто написанное специально под Mac OS X. Теперь давайте посмотрим, что же мы сможем сделать с runtime-свойствами, чтобы придать этому приложению более презентабельный и естественный вид.
В Mac OS X меню приложения всегда находится вверху экрана. Для пользователей, которые долгое время пользовались Windows, это может показаться диким, тогда как для опытного Mac-пользователя такое положение меню приложения кажется вполне естественным. Не будем останавливаться на обсуждении того, что есть удобнее и правильнее. Каждому свое. Поэтому, в идеале, ваше приложение должно удовлетворять как пользователей Windows, так и тех, кто работает на Mac.
Благо, что Apple позаботились о том, чтобы максимально упростить процесс перемещения меню приложения, когда оно (приложение) запускается под Mac. Для этого вам нужно всего-навсего изменить значение системного runtime-свойства com.apple.macos.useScreenMenuBar с false на true. Это можно сделать прямо из командной строки, например:
Теперь сравните изображение, приведенное ниже, с тем, что на рисунке 2, в котором мы не перемещали меню.
Рис. 3. Теперь меню приложения вынесено на свое место (на форме приложения оно отсутствует)
Итак, на этом этапе мы изменили положение меню приложения, поместив его на свое место, как это и положено в Mac OS X. Однако пользователь может очень смутиться тому, что в заголовке имени приложения содержится имя класса “junit.swingui.TestRunner”. Согласитесь, что было бы весьма желательно поменять этот заголовок на что-нибудь более понятное и не отпугивающее, например: “JUnit on Mac OS X”. Добиться этого мы можем, изменяя значение параметра –Xdock:name. Вот пример запуска приложения с этим параметром:
Чтобы не загружать командную строку множеством различных опций, мы посмотрим на результат только лишь изменения этого параметра, не перемещая меню, как это следовало бы сделать. Естественно, что вы можете изменять единовременно столько runtime-свойств и параметров, сколько вам нужно, но пока нам важно увидеть результат, рассматриваемого параметра. Вот что у нас вышло:
Рис. 4. Теперь заголовок приложения изменен на желаемый (меню не перемещено).
Теперь давайте посмотрим на меню приложения:
Рис. 5. Содержание меню приложения JUnit
Вы видите по рисунку 5, что название приложения в меню также изменилось на то, что мы задали в качестве значения параметра. Меню также содержит несколько стандартных функций, которые обеспечивают, например, сокрытие и выход из приложения, Hide и Quit. Эти же функции можно вызвать нажатием Command-H и Command-Q, соответственно. Единственный пункт меню, который обычно присутствует в меню приложения, но не созданный в данный момент для нашего приложения – это пункт About. Вы можете установить имя для этого пункта меню и добавить его в меню приложения, изменив runtime-свойство com.apple.mrj.application.apple.menu.about.name. Например:
Теперь в меню приложения добавлен пункт “About JUnit”, но, к сожалению, при его выполнении ничего не происходит. Даже учитывая то, что в JUnit включен About box, все же необходимо внести небольшие изменения в исходный код программы, чтобы все работало, как следует. Поэтому отложим это до следующего раза. А пока, вот что у нас получилось:
Рис. 6. Меню приложения с пунктом меню “About JUnit”
Теперь, давайте более подробно остановимся на настройке look&feel приложения JUnit. Например, обратите внимание на то, что в правом нижнем углу кнопка Exit размещена немного некорректно:
Рис. 7. Положение кнопки Exit до исправлений.
В идеале нам нужно было бы немного сместить кнопку Exit чуть выше и левее. Но для этого пришлось бы возвращаться к исходному коду и изменять его. Но мы можем исправить сложившуюся ситуацию изменением системного свойства com.apple.mrj.application.growbox.intrudes, например:
Теперь все выглядит куда естественнее:
Рис. 8. Положение кнопки Exit после исправлений.
Однако подобным образом не всегда можно решить все проблемы возникающие с наложением. Хотя в нашем случае получилось очень даже неплохо.
Еще одно, что вам следует знать об особенностях Mac OS X, так это поведение приложения при попытке изменить его размер. По умолчанию размер Java-приложения можно изменять в Windows-системах и в некоторых приложениях Mac OS X. Но такое поведение не является обычным для Java-приложений под Mac OS X. Поэтому, если вы хотите, чтобы пользователь мог свободно изменять размер вашего Java-приложения, следует изменить следующее runtime-свойство, например, вот так:
И еще одно не маловажное свойство позволит управлять размером шрифтов вашего приложения. Довольно трудно писать кросс платформенное приложение и спроектировать GUI, если вы хотите точно определить расположение и размер всех компонентов. Потому, как, например, размеры шрифтов на разных платформах – разные. Поэтому Apple позволяет вам выбирать между большими или малыми закладками. По умолчанию используются большие закладки. Чтобы установить малые закладки, выполним следующее:
Следующие два рисунка показывают разницу между большими и малыми закладками:
Рис. 9. Большие закладки.
Рис. 10. Малые закладки.
Итак, установив всего лишь несколько runtime-свойств, ваше Java-приложение заметно больше походит на родное Mac OS X приложение без всяких изменений исходного кода программы. Это означает, что все вышепоказанные изменения вы можете внести даже, не имея под рукой исходного кода программы. В следующей статье мы погрузимся глубже и попытаемся несколько изменить исходный код программы с тем, чтобы улучшить и облегчить жизнь Mac-пользователей нашего Java-приложения.