Недавно я написал небольшое приложение Java с Eclipse и упаковал экспортируемый Runnable Jar с помощью Jar Bundler от Apple. Все работает отлично, за исключением моих клавиш plist для скрытия иконки приложения в доке. Я попробовал предыдущие ключи plist, которые я использовал раньше, чтобы скрыть значок док-станции, но они не работают. Я запускаю свое приложение, значок появляется в доке и сидит там, подпрыгивая какое-то время, затем он перестает подпрыгивать и просто сидит там. Я не хочу показывать значок Dock, и я не хочу значок в системном трее. Мне просто нужно, чтобы мое приложение работало в фоновом режиме.Java Mac App Hiding Dock Icon
Ключи Я пробовал и не повезло.
apple.awt.UIElement правда
и
Применение является агентом (UIElement) установлено значение True/Yes в Plist Редактор
UPDATE: Вот мой PLIST. Мое приложение все еще отскакивает в доке. Если я позволяю ему сидеть некоторое время, он в конечном итоге начнет работать.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LSUIElement</key>
<string>1</string>
<key>CFBundleName</key>
<string>My App</string>
<key>CFBundleIdentifier</key>
<string>org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader</string>
<key>CFBundleVersion</key>
<string>100.0</string>
<key>CFBundleAllowMixedLocalizations</key>
<string>true</string>
<key>CFBundleExecutable</key>
<string>JavaApplicationStub</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleGetInfoString</key>
<string>My App</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>Java</key>
<dict>
<key>WorkingDirectory</key>
<string>$APP_PACKAGE/Contents/Resources/Java</string>
<key>MainClass</key>
<string>org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader</string>
<key>JVMVersion</key>
<string>1.6+</string>
<key>ClassPath</key>
<string>$JAVAROOT/myapp.jar</string>
<key>Properties</key>
<dict/>
</dict>
</dict>
</plist>
UPDATE 2: Когда я запускаю мое приложение Java с помощью команды Sudo терминала открытого /Applications/MyJava.app он работает нормально. Если я обычно запускаю свое приложение и позволяю ему подпрыгивать на доке, какое-то время он будет работать. Я бы предпочел не запрашивать у пользователя учетные данные, чтобы просто запустить мое простое приложение.
вы пробовали это? http://stackoverflow.com/a/2762735/270157 – Goibniu
У меня есть, но это тоже не сработало. Приложение все еще прыгает вверх и вниз на доке, затем переходит к «Приложение не отвечает». Опять же, мой JAR-файл работает отлично, нулевые проблемы. Просто когда я упаковываю как APP с помощью Jar Bundler. – Lgwells1