2014-02-07 107 views
0

我最近用Eclipse編寫了一個小的Java應用程序,並使用Apple的Jar Bundler打包導出的Runnable Jar。除了用於在應用程序圖標隱藏在碼頭中的plist鍵以外,一切都很好。我嘗試過之前用於隱藏我的碼頭圖標的plist鍵,但它們不起作用。我運行我的應用程序,圖標顯示在碼頭上,坐在那裏彈跳了一段時間,然後它停止反彈,只是坐在那裏。我不想顯示Dock圖標,也不需要系統托盤圖標。我只需要我的應用程序在後臺運行。Java的Mac應用程序隱藏的Dock圖標

鑰匙我試過了,沒有運氣。

apple.awt.UIElement 真正

應用程序設置爲True劑(的UIElement)/是在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> 

更新2: 當我使用終端命令:sudo開放/Applications/MyJava.app運行良好運行我的Java應用程序。如果我正常運行我的應用程序,並讓它在碼頭上反彈一段時間,它最終會運行。我寧願不提示用戶輸入憑據來運行我的簡單應用程序。

+0

你試過嗎? http://stackoverflow.com/a/2762735/270157 – Goibniu

+0

我有,但它也沒有工作。應用程序仍然在碼頭上跳轉,然後轉到「應用程序未響應」。再次,我的JAR文件運行完美,零問題。就在我用Jar Bundler打包成APP時。 – Lgwells1

回答

0

在你的plist:在你的代碼java -Djava.awt.headless=true

System.setProperty("java.awt.headless", "true");

+0

我開始認爲我的打包的.app文件有問題,我有一個啓動代理程序設置爲在登錄時運行該文件。它運行.app內部的JavaApplicationStub,因此如果我重新啓動計算機,它會稍微運行一下。我稍後會發布我的plist。 – Lgwells1

相關問題