热闹 热闹 标签 标签

Java桌面程序 jar 进行Mac与Win下的客户端图标最佳解决方案

评论(0) 浏览(812)

在使用java 设计了 一个程序,但是在 发布的时候, 主要针对 Mac用户 和 Win 用户

这时候,程序包和运行客户端 就不那么美观了

1 win下不可能使用bat 来运行,太丢档次。 2 Mac 下直接运行 是咖啡杯,非常影响视觉效果

所以在研究了很久尝试了很逗方案后,把可行的方案都进行记录

在Mac下的方案: 首先在java 代码 Main 里面,增加检测是否是Mac平台是的话 就设置dock图标, 以下代码

static { //获得操作系统 String OsName = System.getProperty(“os.name”); //是mac 就设置dock图标 if (OsName.contains(“Mac”)) { Image icon_image = new GetIconImage().GetImage(); //指定mac 的dock图标 Application app = Application.getApplication(); app.setDockIconImage(icon_image); }

}

1 2 3 4 5 6 7 8 9 10 11 12 这样就解决了Mac 下运行状态下的 Dock 的图标是自己定义的,以上的实现需要引入一个包 import com.apple.eawt.Application;

接下来 要解决的是 程序包的样子, 我这里使用一个工具,可以直接把 jar jre 打包成一个APP 文件

Platypus.app 使用的是这个软件,非常简单, Mac下的Jar打包软件使用说明

最后,一个Mac 下的正规APP产生了,专业的图标 专业的启动后的样子。 这是最完美的解决方案

以上的工具,在csdn里上传了,这里给予下载地址: http://download.csdn.net/download/aimaia/10032170

Win下的解决方案: 自己做一个启动器,使用vs c# ,非常简单,只需要建立项目 然后设置图标, Main 加上一句启动外部程序,生成就客户端就可以了 以下是我的c#代码 改改直接用

using System; using System.Diagnostics;

namespace testnull { public class EmptyClass {

    private static String appName = @".\jre\bin\java.exe";
    public static void Main(string[] args)
    {

        Process myProcess = new Process();
        try{
            myProcess.StartInfo.UseShellExecute = false;
            myProcess.StartInfo.FileName = appName;

            myProcess.StartInfo.Arguments = "-jar sweixin.jar";
            myProcess.StartInfo.CreateNoWindow = true;
            myProcess.Start();
            Console.WriteLine("运行了超级微信客户端.....");
        }catch
        {
            Console.WriteLine("error");

        }


    }
}

} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 以上,完美解决,自带jre包。

0