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

原创 2017年10月20日 15:53:08

在使用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包。

版权声明:本文为博主原创文章,未经博主允许不得转载。

TCP实现ECHO程序(服务端同时处理多个客户端的响应)

一、ECHO意为应答,程序的功能是客户端向服务器发送一个字符串,服务器不做任何处理,直接把字符串返回给客户端,ECHO是自己笨的客户/服务器程序。 二、目前为止我们编写的程序中,服务器只能处理一个客...
  • u014756517
  • u014756517
  • 2016年07月27日 09:46
  • 1582

mac上可以使用的Windows远程桌面APP

在Mac上可以远程Windows系统的APP有两个版本我使用过,其他我都没用过。 一个是Microsoft Remote Desktop.app  :    另一个是: ...
  • zhangchilei
  • zhangchilei
  • 2017年02月16日 10:21
  • 4278

基于RDP协议的瘦客户机简介

瘦客户机(thin client)是使用专业嵌入式处理器、小型本地闪存、精简版操作系统的基于PC工业标准设计的小型行业专用商用PC。 配置包含专业的低功耗、高运算功能的嵌入式处理器。不可移除地用于存储...
  • wavemcu
  • wavemcu
  • 2014年06月14日 15:37
  • 2870

【PB】pb应用程序不装sqlserver客户端进行连接服务器端解决方案(整理)

PB不装SQL客户端的DLL dbmsgnet.dll dbmsrpcn.dll dbmsshrn.dll dbmsvinn.dll dbnetlib.dll dbnmpntw.dll ...
  • lijianhe043
  • lijianhe043
  • 2012年07月18日 11:24
  • 5195

主机XP,客户端MAC10.9 共享无法打印问题解决方案

  • 2014年06月05日 17:09
  • 532KB
  • 下载

锐捷客户端认证失败:用户物理MAC地址已被修改问题的解决方案

锐捷认证失败:用户物理Mac地址已被修改的解决方案。
  • qq_28903011
  • qq_28903011
  • 2016年09月04日 20:47
  • 8438

java 客户端链接不上redis解决方案

出现问题描述: 1.Could not get a resource from the pool, Connection refused: connectwindows java这边客户端链接被拒接...
  • yingxiake
  • yingxiake
  • 2016年05月21日 22:40
  • 27742

Java客户端连接不了安装在CentOS7上的redis解决方案

Java客户端连接不了安装在CentOS7上的redis解决方案, 关闭CentOS 7防火墙命令
  • hacfox
  • hacfox
  • 2017年03月15日 23:10
  • 1076

关于从java客户端到数据库的数据转换中的编码问题的解决方案

xia 1.java客户端 (1)
  • u013172145
  • u013172145
  • 2014年07月20日 00:54
  • 390

java 客户端链接不上redis解决方案

1.Could not get a resource from the pool, Connection refused: connect windows Java这边客户端链接被拒接了,想想问...
  • weixin_39328945
  • weixin_39328945
  • 2017年07月18日 17:12
  • 79
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java桌面程序 jar 进行Mac与Win下的客户端图标最佳解决方案
举报原因:
原因补充:

(最多只允许输入30个字)