`

myeclipse10 破解及其插件安装

 
阅读更多

一、myeclipse 10 破解

 

myeclipse 9.1 、myeclipse 10 破解 激活,java编写,适用于装有java环境的各种操作系统,win,linux,maxos

第一步:输入任意用户名

第二步:点击Systemid... 按钮,自动生成本机器的systemid。

第三步: 点菜单Tools->RebuildKey

第四步:点击active按钮.会在显示区域生成

LICENSE_KEY
ACTIVATION_CODE
ACTIVATION_KEY

这时候不要打开myeclipse的激活页面输入。

第五步:打开菜单Tools->ReplaceJarFile,弹出文件选择对话框,到myeclipse的安装目录common文件夹下选择plugins文件夹

点击打开,程序会卡住,不要担心,正在替换文件呢!

一会之后,会输出信息,文件已被替换

第六步:点菜单Tools->SaveProperites

OK 。打开你的myeclipse已经不需要再输入激活码什么的了。

=======如果注册成功,下面就不用看了======================

*点击Systemid... 按钮,自动生成本机器的systemid。
    可能会出现一行错误    Cannot find JNIWrapper native library (libjniwrap.so) in java.library.path:~~
    不需要理会,再点击一次即可出现systemid。

破解不成功主要原因有两个
* 生产出来的systemid和exe破解出来的那个对应不上,这个问题我也研究了,没有问题,因为myeclipse里面只要找到能对上一组的数据,systemid就算对上了。
    如果某个操作系统systemid不对,打开myeclipse---myeclipse----Subscription Infomation--输入用户名 激活码----activate now ---web active---- 会看到网址里面有参数 sytemId

* publicKey.bytes 没有替换,请替换,程序中有这个功能(Tools->ReplaceJarFile ,参见上面说明)。

 

二、Myeclipse10插件安装

 

说到插件,myeclipse自8.X开始,插件安装就变得巨难用,通常最好还是用离线安装,在线安装很可能出问题,下面仅以SVN安装为例,其他诸如ADT15,Aptana等都可采用(因为myeclipse官网禁止国内用户访问,所以在线更新出现问题)

1.首先下载SVN包:svn-1.6
2.解压SVN包,然后找到其中的两个文件夹:features 和 plugins
3.随意建一个文件夹(位置和名称自己定就好了,我的是E:\myEclipsePlugin\svn),然后把第二步的解压好的features 和 plugins放到这个文件夹下
4.找到myeclipse的安装目录,下面有一个configuration\org.eclipse.equinox.simpleconfigurator\bundles.info 文件。现在需要做的就是在该文件内添加的东西
5.添加的内容用下面的类生成:

import java.io.File;   
import java.util.ArrayList;   
import java.util.List;   
/**  
 * MyEclipse9 、10 插件配置代码生成器  
 *  
 *  
 */  
public class PluginConfigCreator   
{   
    public PluginConfigCreator()   
    {   
    }   
    public void print(String path)   
    {   
        List<String> list = getFileList(path);   
        if (list == null)   
        {   
            return;   
        }   
        int length = list.size();   
        for (int i = 0; i < length; i++)   
        {   
            String result = "";   
            String thePath = getFormatPath(getString(list.get(i)));   
            File file = new File(thePath);   
            if (file.isDirectory())   
            {   
                String fileName = file.getName();   
                if (fileName.indexOf("_") < 0)   
                {   
                    print(thePath);   
                    continue;   
                }   
                String[] filenames = fileName.split("_");   
                String filename1 = filenames[0];   
                String filename2 = filenames[1];   
                result = filename1 + "," + filename2 + ",file:/" + path + "/"  
                        + fileName + "\\,4,false";   
                System.out.println(result);   
            } else if (file.isFile())   
            {   
                String fileName = file.getName();   
                if (fileName.indexOf("_") < 0)   
                {   
                    continue;   
                }   
                int last = fileName.lastIndexOf("_");// 最后一个下划线的位置   
                String filename1 = fileName.substring(0, last);   
                String filename2 = fileName.substring(last + 1, fileName   
                        .length() - 4);   
                result = filename1 + "," + filename2 + ",file:/" + path + "/"  
                        + fileName + ",4,false";   
                System.out.println(result);   
            }   
        }   
    }   
    public List<String> getFileList(String path)   
    {   
        path = getFormatPath(path);   
        path = path + "/";   
        File filePath = new File(path);   
        if (!filePath.isDirectory())   
        {   
            return null;   
        }   
        String[] filelist = filePath.list();   
        List<String> filelistFilter = new ArrayList<String>();   
        for (int i = 0; i < filelist.length; i++)   
        {   
            String tempfilename = getFormatPath(path + filelist[i]);   
            filelistFilter.add(tempfilename);   
        }   
        return filelistFilter;   
    }   
    public String getString(Object object)   
    {   
        if (object == null)   
        {   
            return "";   
        }   
        return String.valueOf(object);   
    }   
    public String getFormatPath(String path)   
    {   
        path = path.replaceAll("\\\\", "/");   
        path = path.replaceAll("//", "/");   
        return path;   
    }   
    public static void main(String[] args)   
    {   
        /*你的SVN的features 和 plugins复制后放的目录*/  
            String plugin = "E:/tools/MyEclipse/myeclise_plugins/phpeclipse";   
        new PluginConfigCreator().print(plugin);   
    }   
}  

 

6、其他插件安装类似

 

三、更改内存使用文件

 

-vmargs
-Xms256m
-Xmx1024m   
-XX:PermSize=128M
-XX:MaxPermSize=256M

把下面的那个 -XX:MaxPermSize 调大,比如 -XX:MaxPermSize=512M,再把 -XX:PermSize 调成跟 -XX:MaxPermSize一样大


原因:大家一定对这个画面很熟悉吧:

    几乎每次 eclipse 卡到当都是因为这个非堆内存不足造成的,把最大跟最小调成一样是因为不让 myeclipse 频繁的换内存区域大小

注意:XX:MaxPermSize 和 Xmx 的大小之和不能超过你的电脑内存大小

 

以下是有关内存的一些知识扩展:

 

1.堆(Heap)和非堆(Non-heap)内存
     按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法 的代码都在非堆内存中。


2.堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、 -Xmx相等以避免在每次GC 后调整堆的大小。


3.非堆内存分配
     JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。


4.JVM内存限制(最大值)
     首先JVM内存限制于实际的最大物理内存,假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间 有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G- 3G),而64bit以上的处理器就不会有限制了。


举例说明含义:
   -Xms128m 表示JVM Heap(堆内存)最小尺寸128MB,初始分配
   -Xmx512m 表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。
说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。


PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。
-XX:PermSize=64MB 最小尺寸,初始分配 
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配过小会导致:java.lang.OutOfMemoryError: PermGen space MaxPermSize缺省值和-server -client选项相关。-server选项下默认MaxPermSize为64m  -client选项下默认MaxPermSize为32m


PS:不同厂家的jdk垃圾回收算法不一样。在sun的jdk下,Xms和Xmx设置一样,可以减轻伸缩堆大小带来的压力,但在ibm的jdk下面,设置为一样会增大堆碎片产生的几率。

 

  • 大小: 164.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics