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

在使用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);
        }

    }

这样就解决了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");

            }


        }
    }
}

以上,完美解决,自带jre包。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aimaia/article/details/78296376
个人分类: java
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭