Java SE 6(代號 Mustang)將 JDIC(Java Desktop Integration Components)核心功能納入標準庫,開發者無需 JNI 即可實現:啟動畫面、系統托盤圖標、默認瀏覽器啟動、文件關聯、系統托盤氣球提示 等原生桌面特性。
JAVA_HOME=C:\Program Files\Java\jdk1.6.0)<jar jarfile="${dist}/GoMustang.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="GoMustang"/>
<attribute name="SplashScreen-Image" value="gomustang-splash.gif"/>
</manifest>
</jar>
支持 GIF/PNG/JPEG,透明、半透明、動畫均可。JVM 啟動器在加載類前即顯示圖片。
java -splash:gomustang-splash.gif GoMustang
java.awt.SplashScreenSplashScreen splash = SplashScreen.getSplashScreen();
if (splash != null) {
Graphics2D g = splash.createGraphics();
// 繪製進度條、動畫...
splash.update();
Thread.sleep(3000);
splash.close();
}
java.awt.SystemTray + TrayIconSystemTray.isSupported() 檢查平台支持PopupMenu + MenuItem(Exit、Launch Browser)ActionListenerImageIO.read(getClass().getResourceAsStream("gomustang.gif"))TrayIcon,關聯菜單、ToolTip、ActionListenersystemTray.add(trayIcon)MenuItem launchItem = new MenuItem("Launch Browser");
launchItem.addActionListener(e -> {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
desktop.browse(new URI("https://dev.yesky.com"));
trayIcon.displayMessage("GoMustang!", "Launching Browser...", TrayIcon.MessageType.INFO);
}
});
java.awt.Desktop統一啟動默認應用處理 URI/文件:
| 方法 | 用途 | 示例 |
|---|---|---|
browse(URI) | 打開默認瀏覽器 | desktop.browse(new URI("https://dev.yesky.com")) |
open(File) | 用關聯程序打開文件 | desktop.open(new File("readme.pdf")) |
edit(File) | 用編輯器打開文件 | desktop.edit(new File("config.xml")) |
print(File) | 打印文件 | desktop.print(new File("doc.doc")) |
mail(URI) | 啟動郵件客戶端 | desktop.mail(new URI("mailto:admin@example.com")) |
<target name="init">...</target>
<target name="compile">...</target>
<target name="dist" depends="compile"> // 打包含 Manifest 的 JAR
<target name="run" depends="dist"> // java -jar GoMustang.jar
<target name="clean">...</target>
run 目標Java SE 6 將桌面集成從「補丁方案」升級為「標準能力」。SplashScreen 解決啟動體驗,SystemTray/TrayIcon 賦予常駐後台與交互能力,Desktop 統一跨平台啟動默認應用。三者結合,讓 Java 桌面應用擁有真正的原生質感。