由SWT.getPlatform()想到的

 

在Eclipse3.4版本中,SWT类提供了getPlatform方法,用以返回操作的系统平台。

一开始,我以为这个方法必定是调用了系统平台的函数或者本地(native)方法来获取的。

抱着这个想法。查看了SWT的源代码。

 

System.out.println(SWT.getPlatform());//返回系统平台

 源码为:

 /**

 * Returns the SWT platform name.

 * Examples: "win32", "motif", "gtk", "photon", "carbon"

 *

 * @return the SWT platform name

 */

public static String getPlatform () {

return Platform.PLATFORM;

}

 

package org.eclipse.swt.internal;

 

public class Platform {

 

public static final String PLATFORM = "win32"; 

 

}

 

由源代码可知,并不是调用的系统平台函数或本地方法。而在将当前平台所代表的字符串给硬编码(写死)在了

 

Platform.PLATFORM终态变量中。上面源代码是在wndows 32bit版本中查看的。

 

同时在Linux(linux 32bit)下我查看了Linux版本Eclipse。

发现它里面SWT类中getPlatform方法同样是硬编码,如下:

 public static String getPlatform(){

    return "gtk";

  }

 

 

 

经常下载更新Eclipse的朋友都知道,Eclipse官方提供了windows,linux和mac三种不同版本Eclipse的供用户下载。

通过上面查看源码。可以得知,不同平台的Eclipse有不同的SWT相对应的jar库。

 

即在进行RCP开发时,若要提供多个平台版本(比如windows和linux),则既要提供一个windows版本,又要提供一个linux版本(需要使用linux版本的Eclipse进行打包)。

同时,也应该明确跨平台只是一个相对的概念。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值