Eclipse3.2跨平台版本

来源:互联网 发布:在线播放源码 编辑:程序博客网 时间:2024/05/29 18:38
Eclipse3.2跨平台版本 (Eclipse 3.2 Universal Edition No-JRE)

作者:Allan S.C. Yan <allan.yan@gmail.com> 2008-2-28
概要:实现Eclipse的平台统一性,即是实现同一应用程序包在不同平台的选择性运行   
版权:GNU Free Document License v2.0 or above for this document
         Original Eclipse(TM) 3.2 @ http://www.eclipse.org
说明:$/# 为shell终端提示符,其中 $为普通用户 #为超级用户root。 ## 为注释
下载:http://www.91files.com/?MD4CE0A1KTJRUYML3J41
==========================================================

Part A.安装和使用 Eclipse 3.2 Universal Edition

0.查看你的平台
 $ uname -s  # 为你的硬件平台(处理器) ~$arch
 $ uname -m  # 为你的软件平台(操作系统)~$OS
 windows下则为 86.Windows
 
1.配置JRE (>=1.5)
[1].下载安装:JRE 1.5
   (地址: http://www.java.com/en/download/manual.jsp )
   eclipse依赖至少 JAVA_HOME的设置支持,注意本版文为NO-JRE的,
[2].设置Java系统环境
 一般java位于/usr/lib下 或者是 /usr/java,具体请求助系统管理员
 请设置环境变量 JAVA_HOME 以及 PATH 如下
  export JAVA_HOME=/some/where/java/is
  export PATH=$JAVA_HOME/bin:$PATH
 (于 /etc/profile 或者 ~/.bashrc 中)
 
2.安装 Eclipse 3.2 Universal Edition
[0]先下载任何一个平台下的Eclipse解压到某一目录下,以下称为 ECLIPSE_HOME;  
[1].解压 eclipse_3.2-universal_no_jre.zip 中内容到ECLIPSE_HOME中选择覆盖相同名称的文件 ,
[2].Windows下请直接解压后,直接运行 eclipse.bat
[3].*nix下
    $ cd $ECLIPSE_HOME
    $ chmod +x ./*eclipse*)
    $ /some/where/.../eclipse.sh 或者是 $ ./eclipse.sh 均可
    如果一切正常,则会显示启动在成功的提示,
    否则会显示错误信息
[4]MacOSX 下
        (1)终端下执行以上 eclipse.sh
        (2)运行 Eclipse.app(mac os x 下无法看到.app)
   
3.如果有错误请与我联系,已知的可能出现的错误为:
[1]."No SWT library available for this [$(uname -m),$(uname -s)], get swt for this platform and retry."
 表示对应你的平台的SWT库在 $ECLIPSE_HOME/swt/下未能找到;可能原因请参看3.[3]
 排除了3.[3]的错误外,就是没有下载对应平台swt库,请自己编译或者下载swt库
 SWT 3.2 下载地址:http://mirror.calvin.edu/eclipse/downloads/drops/R-3.2-3.206291905/index.php
 在上方应用的网页中下载swt包,抽取对应平台中的swt.jar以及*.jnil 等文件保存到
 $ECLIPSE_HOME/swt/$arch.$OS 文件夹中,重新启动
[2]."No JRE can be found, please set JAVA_HOME environmental variable as which is neccessary."
 表示没有找到JAVA_HOME的环境变量,请参考1中有关部分设置
[3]."Eclipse cannot be lanuched due to problems, see log at $ECLIPSE_HOME/eclipse.log for more infomation!"
 表示环境设置正确,但是错误无法识别,请查看 $ECLIPSE_HOME/eclipse.log,排错;
 特别的,在*nix中区分大小写,请注意保持 swt/ 下文件夹及其文件的大小写;
 如 swt/$arch.$OS,中 arch(uname -m)一般为小写,OS(uname -s)中含有大写,
 而在swt/$arch.$OS下的所有文件应该为小写。
 
4.已知支持 [86(x86) 64(x86_64) ppc sparc ] 硬件平台下
 [Linux SunOS(Solaris) FreeBSD Darwin(MacOSX) Windows] 等操作系统
 
5.无论使用相对、绝对路径或者系统图标均可访问eclipse,也支持符号链接方式的启动
 建立在 /usr/bin/下的符号连接
 # ln -sf $ECLIPSE_HOME/eclipse /usr/bin/eclipse
 
6.关于Eclipse配置文件的问题
 本版本的配置文件存放于 $ECLIPSE_HOME 下
 附庸以前的版本请复制 ~/.eclipse ~/.eclipse3.2 下文件到 $ECLIPSE_HOME 中
 (推荐以上做法,可以在多个平台下共享Eclipse的配置)

==========================================================

Part B.对版Eclipse 3.2 版本的修改(细节、手动修改的方法)

1. swt的不同平台条件选择性运行加载
  抽取原来Eclipse的所有2005版swt包,融入以win32为基础的原版:
  Eclipse @ http://eclipse.linuxsir.org
 ## 也可从 eclipse/swt 的网站中下载 swt ,请见 A.3.[1] 中的部分
 ## e.g. 对于 soalris sparc的发行版本
   ## Eclipse 2005_gtk*_solaris_sparce_*/swt/ -> Eclipse/swt.sparc.solaris
  ##Eclipse 2005_gtk*_solaris_sparce_*/lib/swt.jar ->  Eclipse/swt.sparc.solaris/swt.jar
 如此抽取得到 Eclipse/swt/ 下
 86.Darwin   ## intel x86 Mac OS X
 86.Linux    ## intel x86 Linux
 86.SunOS   ## x86 Solaris (910)
 86.Windows ## intel  x86 Windows (9x/NT/XP/2003/Vista)

2.修改 Eclipse的启动脚本,
(1) eclipse.bat win32平台CMD批处理启动
@echo off '添加以下一行
 copy /y ./swt/86.Windows/swt.jar ./lib/swt.jar
 start javaw -Djava.library.path=swt/x86.WIndows /* 原为 swt*/...
---
(2)eclipse --- POSIX(Linux/Unix)平台的启动脚本 $ECLIPSE_HOME/eclipse
[1].扫描系统脚本(如果存在) /etc/profile /etc/bashrc /etc/bash.bashrc ~/.bashrc
[2].从启动命令(符号连接/绝对路径/相对路径)发现ECLIPSE_HOME(Eclipse的根目录)
[3].使用uname扫描硬件平台(uname -m)和软件平台(uname -s)得到 $ARCHTYPE 和 $OSTYPE
[4].为启动准备:包括
 (1).拷贝相应的swt.jar到lib/下、  ## e.g. swt/86.Linux/swt.jar -> lib/swt.jar
 (2).扫描lib的的jar包准备CLASSPATH、 ## 沿用原脚本的方式,cp改名为 LIB_JARS
 (3).格式形成 SWT_PATH 为 "java -Djava.library.path=$SWT_PATH" 加载库路径
[5].启动Eclipse
 (1).检查[4].(1)是否操作正确,也即是检查平台是否支持。
 (2).若以上成功,则检查JAVA_HOME环境变量是否存在
 (3).若以上成功,则使用java启动Eclipse
 (4).任何不成功的显示错误提示信息

3.关于扩展eclipse以支持更多平台的问题
 见 B.1 或者 A.3.[1] 中的相关部分
 
==========================================================

Part C. Eclipse 3.2 Universal Edition 启动脚本

1.Windows 启动脚本


@echo off
@
cd plugins@del /f org.eclipse.swt.carbon.macosx_3.2.0.v3232m.jar org.eclipse.ui.carbon_3.2.0.I20060605-1400.jar
@
del /f org.eclipse.swt.gtk.linux.x86_3.2.1.v3235.jar org.eclipse.swt.gtk.solaris.x86_3.2.0.HEAD.jar
@
cd ..
@
copy /.swt86.Windows*.jar .plugins
start eclipse.exe


2.Linux/Unix (非Windows)下 ECLIPSE_HOME/eclipse.sh
## eclipse begin... this line should not be included----------------------------------------
#
!/bin/bash

# [1].扫描系统脚本(如果存在) /etc/profile /etc/bashrc /etc/bash.bashrc ~/.bashrc
#
 source the system env profiles
-/etc/profile ] && source /etc/profile
-/etc/bashrc  ] && source /etc/bashrc
-/etc/bash.bashrc ] && source /etc/bashrc
-~/.bashrc ] && source ~/.bashrc

# show Eclipse Universal Edition copyright
echo "+=======================================================================================+"
echo "                            Eclipse 3.2 Universal Edition "
echo "Abstract :Run Eclipse on conditional architectural operating system (paltform-independent) "
echo "                     Author : Allan S.C.Yan (allan.yan@gmail.cm) "
echo "  Copyright: (2008-$(date +%Y))GNU Public License or Lesser GNU Public License version 2.0 "
echo "+=======================================================================================+ "

# [2].从启动命令(符号连接/绝对路径/相对路径)发现ECLIPSE_HOME(Eclipse的根目录)
#
 locate the ECLIPSE_HOME where eclipse resides
ECLIPSE_HOME=
if [ -"$0" ]; then
    ECLIPSE_HOME
=`dirname $(ls -l $(which $(basename $0)) | awk 'BEGIN{FS=">"}{print $2}')`
else
        ECLIPSE_HOME
=`dirname "$0"`
fi
#echo $ECLIPSE_HOME

# [3].使用uname扫描硬件平台(uname -m)和软件平台(uname -s)得到 $ARCHTYPE 和 $OSTYPE
#
 find out the ARCHTYPE and OSYTYPE of this Platform
supported_archs="$(ls  $ECLIPSE_HOME/swt | sort  | awk 'BEGIN{FS="."}{print $1}' |  uniq) unknown"
for arch in $supported_archs;do
  [ 
-z $(uname -| grep "$arch") ] || break
done
ARCHTYPE
=$arch
supported_oss
="$(ls $ECLIPSE_HOME/swt | sort | grep "$ARCHTYPE" | awk 'BEGIN{FS="."}{print $2}'| uniq) unknown"
for os in $supported_oss;do
  [ 
-z $(uname -| grep "$os") ] || break
done
OSTYPE
=$os

# [4].为启动准备:包括
#
 format the neccessary params to start eclipse
#
# (1).拷贝相应的swt*.jar到plugins/下、  ## e.g. swt/86.Linux/swt*.jar -> plugins/swt*.jar
swt_jars="$(ls -R $ECLIPSE_HOME/swt/ | grep jar)"
for file in $swt_jars;do
    rm 
-$ECLIPSE_HOME/plugins/$file
done
cp 
-f  $ECLIPSE_HOME/swt/$ARCHTYPE.$OSTYPE/*.jar $ECLIPSE_HOME/plugins &&
cp -f  $ECLIPSE_HOME/swt/$ARCHTYPE.$OSTYPE/eclipse $ECLIPSE_HOME/
ret=$?

# [5].启动Eclipse
# start eclipse using java and log it to eclipse.log
## (1).检查[4].(1)是否操作正确,也即是检查平台是否支持。
if  [ $ret -eq 0 ];then  
        cd $ECLIPSE_HOME
        $ECLIPSE_HOME/eclipse > $ECLIPSE_HOME/eclipse.log 2>&1 &
        ## (3).若以上成功,则使用java启动Eclipse
        if [ $? -eq 0 ];then
          echo "Started Eclipse Universal Edition in foreground on this platform of $ARCHTYPE.$OSTYPE Successfully."
              exit 0
            else
              echo "Eclipse cannot be lanuched , see log at $ECLIPSE_HOME/eclipse.log for more infomation!"
              exit 1
        fi     

else
    echo "No SWT library available for this [$(uname -m),$(uname -s)], get swt for this platform and retry."
    exit 1
fi

## eclipse end... this line should not be included----------------------------------


@ author Allan S.C. Yan <allan.yan@gmail.com>
@ release time 2008-1-15

 
原创粉丝点击