Я пишу Java приложение Swing для Mac с помощью Java 1.6. Я прочитал много учебных руководств, которые ступают Вы через, как лучше интегрировать Ваше JAVA-приложение с OS X, но существует одна вещь, я не смог получить работу. Я не могу заставить имя приложения (первый, полужирный пункт меню на панели меню Mac) отображаться. По умолчанию полностью определенное имя класса основного класса показывают, и я не могу заставить это изменяться.
Этот сайт говорит, что необходимо установить следующее свойство:
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName");
Но это не работает (я работаю 10.6, поэтому возможно, изменившее имя свойства?).
Когда я создаю новый проект Java в XCode (я обычно использую Eclipse), имя так или иначе волшебно определяется! (это начинает Вас с выполнимым, шаблонным приложением), я посмотрел все вокруг проекта XCode для того, как это сделано, но я не могу понять это!
Мое предположение - то, что это только устанавливает имя приложения, если Вы оборачиваете свое JAVA-приложение в Mac *.app пакет, но задавался вопросом, знал ли кто-либо ответ.Спасибо.
Править: Интересно, это устанавливает имя приложения, если я упаковываю свое приложение в выполнимом файле JAR, но не, если я выполняю его от Eclipse.
Во время инициализации приложения перед построением графического интерфейса необходимо сделать следующее:
// take the menu bar off the jframe
System.setProperty("apple.laf.useScreenMenuBar", "true");
// set the name of the application menu item
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName");
// set the look and feel
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
ОБНОВЛЕНИЕ. Приведенный выше код работает в Java 1.5, этот код может не работать в 1.6
Для новой Java см. документацию :
-Xdock: name
свойство командной строки: - Xdock: name = YourAppName
CFBundleName
в файле списка информационных свойств (plist)