我最近用Eclipse编写了一个小型Java应用程序,并使用Apple的Jar Bundler打包导出的Runnable Jar。一切都很好,除了我的plist键将应用程序图标隐藏在Dock中。我已经尝试过以前用过的plist键来隐藏我的Dock图标,但是它们没有用。我运行我的应用程序,图标显示在停靠栏中并且在那里弹跳一段时间,然后它停止弹跳并且只是坐在那里。我不希望显示Dock图标,我也不想要系统托盘图标。我只是需要我的应用程序在后台运行。
我尝试过的钥匙并没有运气。
apple.awt.UIElement 真
和
应用程序是在Plist编辑器中将代理(UIElement)设置为True / Yes
更新: 这是我的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>
更新2: 当我使用终端命令sudo open /Applications/MyJava.app运行我的java应用程序时,它运行正常。如果我正常运行我的应用程序,并让它在Dock上反弹一段时间,它最终会运行。我不希望提示用户输入凭据来运行我的简单应用程序。
答案 0 :(得分:0)
在你的plist中:java -Djava.awt.headless=true
或
代码中的:System.setProperty("java.awt.headless", "true");